ros2-docs/docs/General ROS 2/Building ROS2 packages.md

94 lines
2.7 KiB
Markdown
Raw Normal View History

2024-11-25 19:19:31 +00:00
# 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
```