94 lines
2.7 KiB
Markdown
94 lines
2.7 KiB
Markdown
|
# Setting up VSCode
|
||
|
first install vscode using snap
|
||
|
```bash
|
||
|
sudo snap install code --classic
|
||
|
```
|
||
|
then add the `ROS` extension from Microsoft.
|
||
|
|
||
|
|
||
|
# Setting up the ROS2 Package Workspace
|
||
|
first create the folder for the package usual it is called `packagename_ws`where `_ws` stands for then you enter the directory and create another directory called `src` then run the `colcon build` command.
|
||
|
```bash
|
||
|
colcon build
|
||
|
```
|
||
|
next go into the `install` folder and add the `setup.bash` source command to your `~/.bashrc`
|
||
|
```bash
|
||
|
...
|
||
|
source /home/username/package_ws/install/setup.bash
|
||
|
```
|
||
|
|
||
|
|
||
|
|
||
|
## Creating a Python Packages
|
||
|
#### Setting Up
|
||
|
Go to the workspace folder that was created in the last step and open the `src` folder. In this folder run this command.
|
||
|
```bash
|
||
|
ros2 pkg create {package_name} --build-type ament_python --dependencies rclpy
|
||
|
```
|
||
|
|
||
|
add your code in to the folder with the `__init__.py`. This is usually in the folder `src/{package_name}/{package_name}`
|
||
|
|
||
|
#### Programming
|
||
|
create a python file for your first node.
|
||
|
`my_first_node.py`
|
||
|
```python
|
||
|
#!/usr/bin/env python
|
||
|
import rclpy
|
||
|
from rclpy.node import Node
|
||
|
|
||
|
|
||
|
class MyNode(Node):
|
||
|
|
||
|
def __init__(self):
|
||
|
super().__init__('first_node')
|
||
|
self.get_logger().info('Hello from ROS2')
|
||
|
|
||
|
|
||
|
def main (args=None):
|
||
|
rclpy.init(args=args)
|
||
|
node = MyNode()
|
||
|
rclpy.spin(node)
|
||
|
rclpy.shutdown()
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
main()
|
||
|
```
|
||
|
|
||
|
Now add it to the setup.py file in the `entry_points` section.
|
||
|
|
||
|
it is setup with the name of the ROS2 command first then the equals followed by the package name, python file name that is in the same folder as the `__init__.py`, and finally the function name to call, usual `main`.
|
||
|
```python
|
||
|
entry_points={
|
||
|
'console_scripts': [
|
||
|
"test_node = husky_test.my_first_node:main"
|
||
|
],
|
||
|
},
|
||
|
```
|
||
|
|
||
|
The final step is building the script and testing it.
|
||
|
|
||
|
#### Building
|
||
|
go the the `{package_name}_ws` folder with the `src` and `install` folder in it. Then run the `colcon build` command.
|
||
|
```bash
|
||
|
colcon build
|
||
|
```
|
||
|
|
||
|
next run the `source ~/.bashrc` command to reload the workspace source file and the other source files.
|
||
|
|
||
|
#### Simplifying Build (specific to python)
|
||
|
since we are using python and it is interpreted we can simplify the build process when working buy using the symlink command to avoid building.
|
||
|
```bash
|
||
|
colcon build --symlink-install
|
||
|
```
|
||
|
|
||
|
then just like before run the `source ~/.bashrc` command to refresh everything and after that you will never have to worry about building or refreshing again.
|
||
|
|
||
|
|
||
|
|
||
|
## Creating a C++ Packages
|
||
|
Go to the workspace folder that was created in the last step and open the `src` folder. In this folder run this command.
|
||
|
```bash
|
||
|
ros2 pkg create {package_name} --build-type ament_cmake
|
||
|
```
|
||
|
|