
Explore ROS basics through Gazebo simulations, practical demonstrations, and exercises, learning services, Python scripts, debugging tools, and workspace setup in a cloud-based environment.
Discover core ROS concepts from packages and launch files to topics and messages, publishers and subscribers. Learn about the parameter server, services, Python basics, and debugging tools.
Create a ROSDS account and sign in to a cloud-based workspace accessible in any browser. Open a ROS project zip from the left menu and run it online.
Create a new ROS project using the empty template, select kinetic with gazebo, set visibility, and manage readme, hardware, downloads, and issues for the ROS basics course.
Explore the ROS desktop environment, opening a cloud-based remote computer, starting a jupyter notebook template, and using gazebo, shells, and the file browser to interact with your ROS projects.
Explore ros basics by creating packages, launching nodes with roslaunch, and simulating robots in gazebo, including Python scripts and custom launch files.
Learn how the ROS parameter server stores runtime settings and how to read and set parameters like /camera rate with rosparam, coordinating roscore and the master.
Learn to create a ROS publisher, publish std_msgs/Int32 messages on a topic like /counter, and inspect topics with rostopic list and rostopic echo in a Gazebo simulation.
Learn to configure a ros publisher to send velocity commands via geometry_msgs twist on the cmd_vel topic, verify with rostopic echo, and stop by publishing zeros.
Learn how to create a ROS subscriber, subscribe to topics, and craft your own messages for ROS topics.
Discover a ros subscriber example: define a callback, subscribe to a topic, receive and print message data, and keep the node alive with spin.
Create a new ROS package with a launch file to run a subscriber, subscribe to the odometry topic, and print robot position x and y.
Create a new ROS message named age in age.msg with fields years, months, and days, save it in the correct package folder, and update build files to enable ROS topics.
Create and publish a new age message in a ros package, configure message generation, and run a publisher–subscriber workflow via a launch file to verify the topic.
Explore ros services, their uses, how to manage and call a service in a ros program, and how to clone and open the project from the description.
Learn to call ROS services from the shell by launching a simulation, inspecting available services, and performing a service call to control the robot, such as deleting a Gazebo model.
Learn to call a ROS service from a Python script by creating a service proxy, sending a request, and handling the response to interact with Gazebo.
Learn to set up a ROS exercise by creating a package and launch file, start trajectory service, and implement a client that sends a trajectory file to execute robot path.
Learn to build and run a ROS trajectory service with a server and client using launch files, a new package, and a gazebo simulation.
Learn to create and call server-side ROS services, including custom message services, using web shells and Gazebo simulation, without installing ROS.
Create a simple ROS service server in Python by importing ROS libraries, defining an empty request and a response, implementing a callback, and running the server to handle client requests.
Create a new ROS service server to move the BBH robot in a circle in the simulation, using launch files and a Python client.
Implement a ROS service server and client to move a robot in a simulated environment, using a launch file and empty service messages to publish cmd_vel.
Learn to create a custom service message in ROS by defining a request and response in a service file, creating the package, and generating the message files for a workspace.
Create a new service message with duration and radius, implement a server with a callback, compile and regenerate messages when topics or services change, and return a response.
Create and test a custom service message to adjust the circle size and duration of a robot's movement, and publish to the velocity stop topic to halt the robot.
Learn the basics of object-oriented programming by using objects and Python classes to structure ROS programs, with an introductory unit designed for beginners and exercises.
Explore the shift from procedural to object oriented programming by building classes and objects in Python, using attributes and methods accessed with self, and creating instances with constructors.
move bb8 using a python class to publish velocity commands on a ROS topic in a Gazebo simulation, including publisher setup, message definition, and a launch workflow.
Learn to implement a BBH move circle service server by importing the prebuilt class, wiring a callback, and extending the server to use a custom message with duration and radius.
Learn how ROS actions work, manage robot actions, and call an action server, using the air drone simulation with obstacles to practice in notebooks.
Explore the drone simulation in ROS basics by publishing empty messages to takeoff and land topics, then control the drone with keyboard inputs, moving, tilting, and landing in 6-DOF.
Explore how ROS actions work by pairing a client with an action server, sending goals, canceling tasks, and receiving continuous feedback, status, and final results.
Explore no-wait action clients in ROS, sending goals and processing asynchronous feedback to update status while performing other tasks.
Explore the 'wait' action client in ROS basics by contrasting waiting for actual server results with non-waiting patterns, using simulation and a real server to handle results and feedback.
Learn how to cancel an action goal in ros by sending a cancel request to the action server, handling preemption, and observing result states and feedback during execution.
Explore how action topics connect ROS action servers and clients by deconstructing the go, status, and feedback messages; observe goal submission, execution, and results across multiple topics.
Explore how to use a graphical interface to interact with ROS actions, send goals to a server, monitor feedback, and handle goal cancellation and completion in a Gazebo simulation.
Create a ROS action server in Python, define the action, and implement a goal callback that builds a Fibonacci sequence with feedback and a final result, including preempt handling.
Create a ROS package with a custom action message to move a drone one meter up or down. Implement an action server that provides one-second feedback and returns no result.
Explore ROS basics with debugging tools, from ROS help and debugging rust logs to recording and replacing sensory data, blocking topic data, and connecting nodes for robot sensing debugging.
Explore debugging and visualization in ROS using roswtf to diagnose roslaunch issues, dependencies, and faulty launch files, while handling complex data like images and laser scans.
Learn to use ROS logging levels to control messages from debug to error, and explore roslaunch, topics, and the graphical logging tool to monitor output.
Learn to visualize real-time ROS data with rqt_plot by adding the joint states topic and plotting joint positions to validate robot motion during a Gazebo simulation.
Explore how the RQT graph visualizes ROS nodes and their topic-based communication, showing namespaces, publishers, and subscribers, and how to hide or reveal active connections for debugging.
Record data from topics with rosbag to capture laser scan and sensor readings for reproducible experiments, then replay with rosbag play to validate results.
Use rqt plot to visualize the laser scan topic, whether from ros bag or real data, and verify the ranges array and topic consistency for effective debugging.
RViz visualizes what the robot or simulation publishes, helping you debug data with a 3d space, a fixed frame, and visualizations for lasers, robot models, and cameras.
Visualize laser scan data in rviz by selecting the laser scan topic, viewing robot-relative points, and customizing color and intensity to detect objects like a table and balls.
Explore a web-based, no-installation ros experience with free accounts up to 30 hours (50 with referrals), and discover deconstruct resources and Robotic Knight Academy courses.
Interested in learning how to program robots with ROS, but don’t know where to get started?
The ROS BASICS course will take you quickly and smoothly into ROS. You will get the best ROS learning experience by programming simulated robots.
The objective of this course is to give you the basic tools and knowledge to be able to understand and create any basic ROS related project. You will be able to move robots, read their sensor data, make the robots perform intelligent tasks, see visual representations of complex data such as Point Clouds and debug errors in the programs.