-
Notifications
You must be signed in to change notification settings - Fork 1
ROS
ROS is an open-source operating system and a software framework for robots. ROS performs like an expected operating system and provides many tools and libraries for developing the robot that is wanted. ROS has many useful tutorials that can be used to start working on a robot. Here below is some of the tutorials used for this project.
ROS is installed on the docker image we use or can be installed manually on Ubuntu. See Docker or Setup.
The ROS folder of this repository is a catkin workspace (many tutorials use the name catkin_ws instead of ROS). Catkin is a tool like cmake used to build everything in the workspace. Packages are put or created in the ROS/src folder. Packages contain the code defines topics and nodes. Everything in the workspace can be built by running catkin_make. If that doesn't work, you might need to source (run) the ROS setup file. See the Create a ROS Workspace and Creating a ROS Package tutorials for how to do all these steps.
- rover_core - Our package.
- IntelRealsense - Connects to the T265 camera. Says it supports ROS Kinetic but seems to work on Melodic.
- rosserial - Connects to any nodes running on microcontrollers over USB.
- apriltag - Package for detecting AprilTags
todo: talk about roslaunch
- navigation
- realsense: provided by the realsense-ros package
- wheels
- AprilTag
- /wheels/odom_velocity
- Publisher: wheels
- Subscriber: navigation
- Message type:
geometry_msgs/Twist. Message structure is roughly: {linear: {x: , y: , z: 0}, angular: {x: 0, y: 0, z: }} - Description: Reads the current x and y velocity in m/s and CCW rotation speed in radians/s around the z axis. Relative to local frame.
- /wheels/odom_position
- Publisher: wheels
- Subscriber: navigation
- Message type:
geometry_msgs/Pose - Description: Reads the distance the robot has traveled and rotations it has made Relative to the local frame. So if the robot traveled forward while turning left, this would show how far it had traveled and how much it had turned.
- /wheels/cmd_velocity
- Publisher: navigation
- Subscriber: wheels
- Message type:
geometry_msgs/Twist - Description: Set the target x and y velocity in m/s and CCW rotation speed in radians/s around the z axis. Relative to local frame.
- /wheels/cmd_move
- Publisher: navigation
- Subscriber: wheels
- Message type:
geometry_msgs/Pose - Description: Moves the robot relative to the local frame in m/s and rad/s. Sending another cmd_move message before the last move has completed will cancel the previous one and start the move relative to the current position.
- /wheels/cmd_move_speed
- Publisher: navigation
- Subscriber: wheels
- Message type:
std_msgs/Float32 - Description: Sets the max meters/s a wheel will move when executing a move command. Other wheel speeds are scaled to maintain coordination.
- /apriltag/pos
- Publisher: AprilTag
- Subscriber: navigation
- Message type:
geometry_msgs/Pose - Description: Reads the distance the AprilTag is relative to the robot. Translation and Rotation position is sent.