The goal of this project is to build a differential drive robot that is controlled by an ESP32 running micro-ROS and is driven by an ODrive Motor Controller. Eventually the nav2 stack will be used.
- Create task for reading and writing to the ODrive
- Publish ODrive positions and velocities to
/joint_state
- Create a
robot_state_publisher
launch file for use rviz2 - Subscribe to
/cmd_vel
and implement forward kinematics - Tele-op control from
/joy
- Publish Pose from wheel movement estimations
- Implement sensors for costmaps
Make sure the micro_ros_espidf_component sub-module is updated
Link the hidden component in the esp-idf v4.3 example. Something like:
ln -s ~/esp/esp-idf/examples/peripherals/pcnt/rotary_encoder/components/rotary_encoder/ ./components/rotary_encoder
. ~/esp/esp-idf/export.sh
idf.py set-target esp32
idf.py menuconfig
idf.py flash
This needs to be done in a separate directory according to the Creating the micro-ROS agent instructions.
source /opt/ros/foxy/setup.bash
ros2 run micro_ros_agent micro_ros_agent udp4 --port 8888 -v6