vault backup: 2025-02-03 07:04:13

This commit is contained in:
2025-02-03 07:04:14 +01:00
parent e158386068
commit 7909836706
2019 changed files with 59 additions and 26816 deletions

View File

@@ -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

View File

@@ -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).

View File

@@ -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.

View File

@@ -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
```