- Notifications
You must be signed in to change notification settings - Fork6
This project builds a ROS-based Autonomous Robot from scratch
License
NotificationsYou must be signed in to change notification settings
srujanpanuganti/elsa
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
ELSA Robot
- To install teleop-twist-keyboard
sudo apt-get install ros-melodic-teleop-twist-keyboard
- The project has two packages
elsa
andros_arduino_bridge
- Follow the below instructions to build the project
cd ~/catkin_ws`source devel/setup.bashcatkin_make --only-pkg-with-deps elsacatkin_make --only-pkg-with-deps ros_arduino_bridge
- Follow the below commands to execute the project
roslaunch elsa elsabot.launch
- Use the below command to do keyboard teleop
rosrun teleop_twist_keyboard teleop_twist_keyboard.py
- To launch gmapping
roslaunch gmapping slam_mapping_pr2.lanch
- To save the map
rosrun map_server map_saver -f /tmp/my_map
- To use robot_localization package for filtered odometry data
roslaunch robot_localization ekf_template.launch
--> This will be merged to the elsa project, as we are required to edit the EKF parameters according to our requirement
- Coordinate Transformations and Robot Dimensions can be found at
docs/Robot dimensions and coordinate transformations.pdf
- More info about the references used is provided in the reference section
- Publish imu to
/imu/raw_data
topic - Publish encoder ticks to
/ticks_pub/lwheel_ticks
and/ticks_pub/lwheel_ticks
topics - Publish Odometry data to
/odom
topic - Configured the ROS_Arduino_Bridge
- Debug the ROS_Arduino_Bridge
- Solder Arduino Nano
- Connect the Arduino Nano to the Motor_Driver
- Edit the scripts for the second USB port (/dev/ttyUSB*)
- Publish encoder ticks to
/arduino/lwheel_ticks
and/arduino/lwheel_ticks
topics - Publish velocoties to
/cmd_vel
topic- Publish sample Twist msg -- Seems like there's an error/lag
- Debug the motor_driving
- Finish the base_controller to subscribe to
/cmd_vel
topic to move the robot_base - Write a node to Publish raw images to a ROS topic
- Resolve cv_bridge and opencv4 issue for ROS - the issue is specific to ROS-melodic and OpenCV4 combination
- Transport Pi camaera v2 video stream using sensor_msgs/Image to a ROS topic
- Setup either YDLidar X4 for 2D map creation - needed extra cable to power the LIDAR, since the RPi cannotprovide enough power to drive the LIDAR motor
- visualized the tf and odometry in rviz
- Fix the odometry axis and tf axis alignment - made sure all the axis are aligning in same direction
- rename the coordinate frames of the ydlidar to match with our convention
- fix encoder direction
- fix the motor direction
- Use teleop_twist_keyboard to move the robot -- works perfectly
- Use robot_localization package to filter the Odometry msg using ekf_lozalisation node
- check if everything is working as expected -- need to tweak covariance matrix for better estimation
- Fix the direction issue with rviz visualization -- Problem is with Odometry calculation -- robot_localization is solving this
- Use slam techniques for mapping - Works
- Tune the PID controller
- Use camera data to obtain the images to do SFM and build the 3D_point_cloud_map
ELSA Result
- The below image shows the
/base_link
and/odom
coordinate frames and trasformations between them in rviz
Coordinate Transformations (TF) in rviz
- The below image shows the robot movement in rviz based on the odometry published to
/odom
topic
Odometry of the ELSA Robot in rviz
- The below image shows the laserscan from YDLIDAR X2 being pubilshed to
/scan
Laser Scan in rviz
- The below image shows the TF tree based on coordinate transforms being published to
/tf
TF Tree
- The TF tree can be found at
elsa/docs/frames.pdf
- The project uses theROSArduinoBridge Package. However, many modifications are made according to the requirements
- The Project also uses theSparkFun_RedBot_Arduino_Library Arduino Library. This library has been modified a little bit according to our requirement. The updated library can be found in
/elsa/elsa/arduino/
- The Projects also uses few insights from the packagediff_drive
- The project refers several tutorials fromROS wiki
- The topics are published according to the coordinates frames as perREP103 standards andREP105 standards
- The YDLIDAR uses the package provided by EAI YDLIDARgithub
- The Project uses robobt_localization package to fuse imu and encoder-based Odometry data, to provide filtered pose. Technical documentation for the robot_localization package can be foundhere
About
This project builds a ROS-based Autonomous Robot from scratch
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
No releases published
Packages0
No packages published
Uh oh!
There was an error while loading.Please reload this page.