BehaviorTree.CPP
ros2_control_demos
BehaviorTree.CPP | ros2_control_demos | |
---|---|---|
4 | 5 | |
2,702 | 335 | |
2.5% | 5.7% | |
9.3 | 8.4 | |
4 days ago | 4 days ago | |
C++ | C++ | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
BehaviorTree.CPP
- Coroutines make robot code easy for high schoolers
-
ROS2 task/schedule/statemachine discussion
Have a look at Behavior Trees, especially the BehaviorTreeCpp library https://www.behaviortree.dev The method is simple to understand, scales better than State Machines and if you implement the actions well they’re inherently modular. Nav2 uses them, and also BostonDynamics in their Spot SDK.
-
Facts about State Machines
Unrelated to javascript, but in the robotics industry there is a trend towards Behaviour Trees. https://www.behaviortree.dev/ is a C++ library that was originally designed for controlling robots via ROS, but it appears to be decoupled from the ROS ecosystem so it could be used for other projects.
There is a basic UI available for editing the tree https://github.com/BehaviorTree/Groot
- BehaviorTree.CPP: C++ behavior tree library, batteries included
ros2_control_demos
-
Fail to load library when trying to write a custom hardware interface for Arduino to control servo motors
Hello, I am learning ROS2_control by trying to wrtie a custom hardware interface to control 2 servo motors via Arduino. I am referencing these two repository ros2_control_demo_hardware and diffdrive_arduino when trying to write my code. I can successfully move my pan-tilt robot in simulation (Gazebo) and fake hardware mode. However, I failed to move it in the real hardware after a week of trying. below is the error i got when i ran the launch file. Can anyone tell me where i did wrong and how should i modify my code to correct it? Many thanks. Here is my code here
-
Will the joint limits in my URDF file limit the real components or just the simulation? (ROS2: Foxy)
There is no guarantee that limits in your URDF will affect the actual robot hardware. You need to make sure the hardware driver is applying those limits by either parsing the URDF or using parameters specified via the ros2_control xacro file, which is typically included in the robot's description (e.g., https://github.com/ros-controls/ros2_control_demos/blob/master/ros2_control_demo_description/rrbot_description/ros2_control/rrbot_system_position_only.ros2_control.xacro).
-
ROS2_Controllers Hardware Interface to uROS communication via topics?
I've been messing with the ROS2 Control Demos, trying to adapt it to a physical differential drive robot I've been working on. I've had limited success communicating hardware commands from a Raspberry Pi 4 running the ROS2 differential drive controller to a microcontroller (currently a Teensy 4.1) that is in charge of interfacing with the robot hardware. Techniques I've gotten "working" for communication between the Pi and are serial (via USB) and ethernet (UDP).
-
Robot Operating System: Expose Control Nodes for an Interactive Simulation in Gazebo
Exposing controller nodes explicitly involves a number of steps. Loosely following the official documentation, ros control demo repository and my own experience, these are:
-
Robot Operating System: Getting Started with Simulation in ROS2
The launch file can also transform the Xacro files during startup, as shown in the diff_bot example. For example, to load the Gazebo configuration, you need to execute this:
What are some alternatives?
navigation - ROS Navigation stack. Code for finding where the robot is and how it can get somewhere else.
ardupilot - ArduPlane, ArduCopter, ArduRover, ArduSub source
gazebo_ros2_control - Wrappers, tools and additional API's for using ros2_control with Gazebo Classic
carla - Open-source simulator for autonomous driving research.
gazebo-classic - Gazebo classic. For the latest version, see https://github.com/gazebosim/gz-sim
linorobot - Autonomous ground robots (2WD, 4WD, Ackermann Steering, Mecanum Drive)
webots - Webots Robot Simulator
pros - Source code for PROS kernel: open source C/C++ development for the VEX V5 microcontroller
odrive_ros2_control - ODrive driver for ros2_control
mcl_3dl - A ROS node to perform a probabilistic 3-D/6-DOF localization system for mobile robots with 3-D LIDAR(s). It implements pointcloud based Monte Carlo localization that uses a reference pointcloud as a map.
ros2_controllers - Generic robotic controllers to accompany ros2_control