Skip to content

Differential Driving Robot with ESP32 and ODrive running micro-ROS

License

Notifications You must be signed in to change notification settings

yuthnea/diff-drive-esp32-uros

 
 

Repository files navigation

Differential Driving Robot with ESP32 running micro-ROS

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.

TODO

  • 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

Build and Running Steps

Build/Flash Firmware

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

Launch micro-ROS agent

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

About

Differential Driving Robot with ESP32 and ODrive running micro-ROS

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 70.6%
  • Python 26.8%
  • CMake 2.1%
  • Makefile 0.5%