- Improve ROS1 and
roscpp
proficiency. - Learn ROS2.
- Learn to create gazebo plugins.
- Sensor Fusion and SLAM with ROS.
- Build a ROS enabled AMR
Tasks
- Setup noetic & foxy
- Setup neovim for ROS development
- Tried to get vim-ros working.
- Autocompletion with neovim and LSP
Progress
- Autocompletion with neovim 0.5 failed. Will look at other options.
Tasks
- Refresher: Watch Programming for Robotics (ROS) Course 1
- ROS architecture and philosophy
- ROS master and nodes
- Topics and messages
- Console commands
- Catkin workspace and build system
- Launch files
- Gazebo
Progress
- Tried out various console commands.
- Created a launch file to visualize the robot in rviz - commit
Tasks
- Watch Programming for Robotics (ROS) Course 2
- Initialization of the nodes
- NodeHandles
Progress
- Learned
ros::init()
and its various invocations. - Learned about different types of
NodeHandles
- Learned about various Logging macros
- commit
Tasks
- Watch Programming for Robotics (ROS) Course 2
- Subscribers and Publishers
- ROS parameter server.
Progress
- Edit
CmakeLists.txt
to create multiple nodes. - Created subscriber and publisher nodes
- Learned
rosparam
syntax. - Misc:
Tasks
Progress
- Created a basic urdf (visual only) for 3-wheeled omnibot.
Tasks
Progress
- Created macros for wheel link and joints - omnibot.
Tasks
Progress
- Tried out different cmd line
tf
tools.tf_monitor
,tf_echo
andview_frames
- Quaternion Basics
- Tested different quaternion operations -- Creating quaternion from rpy,
rotations and conversion between
tf2::Quaternion
andgeometry_msgs::Quaternion
- Tested different quaternion operations -- Creating quaternion from rpy,
rotations and conversion between
- Started writing a
tf2_static_broadcaster
- Today's Work
Tasks
- tf2
Progress
- Wrote tf2 broadcaster.
tf2_ros::TransformBroadcaster
- Creating callback functions for
/odom
topic - Today's Work
Tasks
- Today I planned to finish adding lidar and meshes to the robot urdf. But spend too much time on freecad trying to fix the origin of an imported wheels.
Progress
- Created meshes for
omnibot_description
urdf geometry.
Tasks
- Start work on CAD model
Progress
- Created base and started assembly.
- Fix origin errors with meshes
Tasks
- Watch Programming for Robotics (ROS) Course 4
- Create a service file
- Write a service client in
roscpp
Progress
- Created a service client and service message.
- Had trouble with empty service request [TODO]
- Today's Work
Note
- Designing the omnibot model requires a sizeable chunk of time,
which I'm lacking this week. Hence, I decided to resume learning
roscpp
and put the robot design on hold for the week. The current CAD model is for visualization only and it is not what something I want it to be.
Tasks
- Continue with ROS
Services
- Write a service server in
roscpp
- Write a service server in
Progress
- Created a service server.
- Learned to create persistent connections to services
- Different callback types that can be used for the ServiceServer: Functions, Class Methods and Functors
- Create headers to pass meta information about the client.
- Today's Work
Tasks
- Learn Timers
Progress
- Created Timer callbacks of different flavours - Function, class methods.
- Explored various members of
struct TimerEvent
-last_expected
,last_real
etc - Today's Work
Tasks
- Learn Clock & Time
- Learn Callbacks & Spinning
Progress
- Learned about
ros::Time
,ros::Duration
andros::Rate
examples. - Use
WallTime
,WallDuration
andWallRate
when wall-clock is needed. - Use
Timers
overRate
. Rate
tries to maintain rate for a loop.- Learned about single threaded spinners and experimented with
ros::spin()
andros::spinOnce()
- Found couple of good sources to learn more about ROS callbacks and spinners
- Today's Work
Tasks
- Try out some ros packages and build something interesting
aruco_ros
for 6-dof pose estimation.follow_waypoints
Progress
aruco_ros
doesn't have noetic support yet, so I created a forkaruco_ros-noetic
- Successfully installed follow_waypoints
Tasks
- Create launch file for aruco marker publisher.
- Write a node to check if a given list of markers are present in the world
Progress
- Created a world with aruco markers
- Generated aruco marker models to be added to the world
- Launch file for
marker_publisher
- Started writing a marker counter node.
Tasks
- Continue yesterday's work
Progress
- Issues: After moving the marker models to local directory, the markers were visible
in gazebo, but were not visible via camera plugin output. ie; the markers were
invisible when the camera topic is visualized in
rqt_gui
- As a temporary fix, the models were moved to
~/.gazebo/models
- Finished writing a node to check if a list of aruco markers are present in the world. link
Tasks
Actionlib
- Write an actionclient for
move_base
to send waypoints to the robot.
Progress
- Started creating an action client for move_base.
Tasks
- Finish writing action client for move_base
- Load waypoints to rosparam server from yaml file.
Progress
- Successfully completed waypoint mission with move_base action client. link
- Created yaml file with params (waypoints and markers), loaded it into parameter server and read it from the node.
- Fix inflation radius to prevent the robot from getting stuck in the maze world.
Tasks
- Continue learning actionlib
Progress
Tasks
- Today I try to setup and test rosserial on an arduino mega and a tiva evaluation board (TM4C123GXL).
Progress
- Installed
rosserial-arduino
- In the IDE, library version 0.7.9 seems to work, while the latest verison (0.9.1) available fails to compile the sketch.
- After uploading the sketch,
rosrun rosserial_python serial_node.py /dev/ttyUSB0
was run to rosserial client application.
Day skipped due to academic work.
Tasks
actionlib
- Write simpleActionServer with GoalCallBack.
Progress
- I rewrote the action server script that I wrote on Day 19, with goalcallback. I struggled a bit with the roswiki tutorials on actionlib. Need to find a better resource to learn.
- Note: In the streak tracker, today's commit will count towards the next day, as I am commiting after midnight.
Tasks
rviz
visualisation.actionlib
will be put on hold until I find a better tutorial.
Progress
- Started writing rviz marker visualisation
Tasks
Progress
- Learned to add basic shapes to rviz