vault backup: 2025-02-03 07:04:13
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,19 +0,0 @@
|
||||
Nav3 is our custom implementation of a navigation library. It is heavily inspired by [[ROS2 - NAV2 Library|NAV2]] which is a standard [[ROS2]] library.
|
||||
|
||||
By heavily inspired I mean it is basically copied, and modified.
|
||||
|
||||
# Differences
|
||||
## Costmap_3d
|
||||
The `nav3_costmap_3d` package is completely rewritten. The only similarity to the original `nav2_costmap_2d` package is that we're using the same API to remain compatible with the rest of the `nav2` library.
|
||||
|
||||
Our own costmap_3d implementation uses a fruxel grid instead of voxels.
|
||||
|
||||
## Planners
|
||||
Several planner plugins are missing for now.
|
||||
|
||||
## Controllers
|
||||
Several controller plugins are missing for now.
|
||||
|
||||
|
||||
## Nav3_util
|
||||
- Added `calculate_linear_speed(Twist)` which is a central util function to calculate speed
|
||||
@@ -1,12 +0,0 @@
|
||||
The purpose of using [[Docker]] this is to have a containerized build of the autopilot. This means that any employee can easily get started with development by cloning the vscode-docker-dev repo and open the repo in a containerized mode. This drastically reduces onboarding time and also ensures that everyone is working on the exact same system.
|
||||
|
||||
There are a few inspirations to how I want to set this up:
|
||||
1. Keep in mind that the final code needs to run on the raspberry pi cm4 module, without a docker container because we need hardware access.
|
||||
2. The containerization can be built in several layers:
|
||||
1. ros2 production (no simulation tools, this is the closest we get to the rasperry pi --> exports a shell script to install on the rasperry pi.)
|
||||
2. simulation stack: includes px4-osd that runs the current px4-code and the px4 simulation running in gazebo as well as ros2 to do development
|
||||
3. testing stack: same as previous stack but includes integration tests: missions to accomplish and writes automated reports if the flights were successful or not (could also upload to a log website)
|
||||
|
||||
This is going to be really helpful in the future, because with every commit merge to the main branch, unit-tests, functional tests and integration tests need to pass before a merge can happen.
|
||||
|
||||
PX4 already does [extensive testing](https://github.com/PX4/PX4-Autopilot/tree/main/test) within a gazebo simulation. It also includes more elaborated [integration tests](https://github.com/PX4/PX4-Autopilot/tree/main/integrationtests/python_src/px4_it).
|
||||
@@ -1,5 +0,0 @@
|
||||
## How to run
|
||||
1. We need a transform between map and odom: `os2 run tf2_ros static_transform_publisher 0 0 0 0 0 0 1 map odom`
|
||||
2. We need the px4 simulation running: `source ~/ros2_ws/install/setup.zsh && cd ~/px4-osd && make px4_sitl_default gazebo_osd_mono_copter`
|
||||
3. We need the RTPS bridge running: `/home/claudio/ros2_ws/install/px4_ros_com/bin/micrortps_agent -t UDP`
|
||||
4.
|
||||
@@ -1,23 +0,0 @@
|
||||
|
||||
# PX4_MSGS
|
||||
The [PX4_msgs](https://github.com/PX4/px4_msgs) package is required, because it translates [[Custom uORB Message|uORB]] messages into the ROS2 ecosystem and vice versa. The project contains a `msg` folder, which contains the msg definitions. Usually, those message definitions are autogenerated by [a script](https://github.com/PX4/PX4-Autopilot/blob/v1.13.3/msg/tools/uorb_to_ros_msgs.py) provided by the PX4-Autopilot project.
|
||||
A build error that has popped up several times is that the messsage definition comments contain `*/` which is misinterpreted by the compiler
|
||||
Error message:
|
||||
``` bash
|
||||
/home/pi/ros2_ws/build/px4_msgs/rosidl_generator_c/px4_msgs/msg/detail/gimbal_v1_command__struct.h:356:3: error: expected identifier or ‘(’ before ‘/’ token
|
||||
356 | */
|
||||
| ^
|
||||
/home/pi/ros2_ws/build/px4_msgs/rosidl_generator_c/px4_msgs/msg/detail/gimbal_v1_command__struct.h:365:3: error: expected identifier or ‘(’ before ‘/’ token
|
||||
365 | */
|
||||
```
|
||||
In order to solve this error, just delete the relevant parts of the comment.
|
||||
|
||||
|
||||
# px4_ros_com
|
||||
In order to successfully build the `px4_ros_com` package you need to define the following env-variable: `export FASTRTPSGEN_DIR="/usr/local/bin/"`.
|
||||
Without it it will not work and throw the following error:
|
||||
```bash
|
||||
c++: error: /home/pi/ros2_ws/build/px4_ros_com/src/micrortps_agent/microRTPS_agent.cpp: No such file or directory
|
||||
c++: fatal error: no input files
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user