Memristor Eurobot Platform based on ROS 2
Make sure you have ROS 2 Humble installed and follow the steps below:
# Source ROS 2
source /opt/ros/humble/local_setup.bash
# Create a workspace
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws
git clone [email protected]:memristor/mep3.git src/mep3
# On embedded device: touch src/mep3/mep3_simulation/COLCON_IGNORE
# Install dependencies
sudo apt install python3-vcstool
vcs import src < src/mep3/mep3.repos
rosdep update
rosdep install --from-paths src --ignore-src -r
# Build the packages
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo
# Source this workspace
source install/local_setup.bash
Please check alternative installation methods here.
Start the ROS app on a physical robot or a simulation with multiple robots.
Start the ROS app on SBC (we support Raspberry Pi):
ros2 launch mep3_bringup robot_launch.py bt:=false color:=blue
Important parameters are:
namespace
: Whether to load a configuration for a big or small robot (can bebig
orsmall
).color
: Team color (can beblue
orgreen
).bt
: Whether to run a behavior tree (can betrue
orfalse
).strategy
: Name of the behavior tree you want run.
Start the simulation on a PC:
ros2 launch mep3_bringup simulation_launch.py
Important parameters are:
color
: Team color (can beblue
orgreen
).bt
: Whether to run a behavior tree (can betrue
orfalse
).big_strategy
: Name of the behavior tree you want run for the big robot.small_strategy
: Name of the behavior tree you want run for the small robot.
ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args -r cmd_vel:=big/cmd_vel
(use i
, j
, l
, and ,
keys move to the robot)
ros2 launch mep3_bringup rviz_launch.py namespace:=big
(use 2D Goal Pose
to navigate the robot)
To iterate quickly on behaviors you can load any strategy that contains live
in the name.
As soon as any of the files in the mep3_behavior/strategies
directory is changed the behavior node will reload.
- Open
mep3_simulation/webots_data/worlds/eurobot.wbt
in Webotswebots ~/ros2_ws/src/mep3/mep3_simulation/webots_data/worlds/eurobot.wbt
- Stop simulation and set time to
00:00:00
- Save changes
- Commit all changes except for
Viewpoint
- Change working directory to
~/ros2_ws
- Run the following command:
source /opt/ros/humble/local_setup.bash colcon test --event-handlers console_cohesion+ --return-code-on-test-failure