-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
c877e3f
commit 6f7ca50
Showing
1 changed file
with
14 additions
and
43 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,52 +1,23 @@ | ||
# rover | ||
Mars Rover Project software development | ||
# Mars Rover Project software development | ||
|
||
This is a repository containing all the ROS packages needed for the physical rover as well as | ||
the Gazebo simulation. Each package contains a README file that explains the package architecture as well | ||
the simulations. Each package contains a README file that explains the package architecture as well | ||
as details pertaining to messages, functions, and so on. After you follow this README, make sure to check | ||
the individual package README's for clarification. | ||
|
||
# Getting Started | ||
To get started, start by setting up your work environment by following the [Work Environment Setup page](https://github.com/mcgill-robotics/rover/wiki/1.-Work-Environment-Setup) in the Wiki section. Next, complete the [ROS](https://github.com/mcgill-robotics/rover/wiki/2.-ROS-Tutorial) and [Git](https://github.com/mcgill-robotics/rover/wiki/3.-Git-Tutorial) tutorials also found in the Wiki section. | ||
|
||
### Working with Ubuntu | ||
To use ROS, you will need an Ubuntu system. For Windows users, options include dualbooting, virtual machines | ||
or WSL (Windows Subsystem for Linux). You can also try VPN'ing into McGill EMF (Engineering Microcomputing | ||
Facilities) PC's, but some of the steps will need sudo which might not be allowed. | ||
Finally, clone the repository by running `git clone https://github.com/mcgill-robotics/rover` in a folder called `src` (e.g., create a `catkin_ws` folder in `Documents` and clone the repo in `Documents/catkin_ws/src/`) and build the catkin workspace by running `catkin build` in your catkin workspace. | ||
|
||
### Installing ROS | ||
Follow [these steps](http://wiki.ros.org/noetic/Installation/Ubuntu) to install ROS. Next, follow [these steps](http://wiki.ros.org/ROS/Tutorials/InstallingandConfiguringROSEnvironment) to see how to configure your shell and how to make a workspace. If you | ||
want, you can keep going with the tutorials to familiarize yourself with ROS and its commands. In addition, you | ||
should install the packages listed in "requirements.txt". | ||
# Running the System on the Rover Computer (Updated May 19 2024) | ||
Follow these steps to run the Drive, Cameras, and UI systems: | ||
1. ssh to Jetson through McGill wifi or antenna link by running `ssh rover@JETSON_IP` and entering the Jetson User's password (ask a lead for that). The `JESTON_IP` through the antenna link is `192.168.1.69`. The Jetson IP address through McGill wifi is not static, you will need to obtain it by running `ifconfig` on the Jetson directly. | ||
2. Ensure the code version is the one you want to test. To pull latest changes, run `git pull` in the rover folder repo `~/catkin_ws2/src/rover/`. | ||
3. Build the project by running `catkin build` in `~/catkin_ws2/`. This step can be skipped if you already built the project code. | ||
4. To start the Drive, Cameras, and UI systems, `source devel/setup.bash` then run `roslaunch rover_system rover_robot_odrive.launch`. Note that the rover should be picked up at this point so that the ODrives correctly calibrate. | ||
5. Access the UI page at `http://JETSON_IP:8080`. | ||
6. To drive, plug a controller to the computer and press on `On` in the Drive UI widget. | ||
|
||
### Installing Dependencies | ||
The rover uses some packages provided by the larger community. To install them and be able to use them, the following commands need to be run | ||
``` | ||
sudo apt-get install ros-noetic-rosserial | ||
``` | ||
|
||
### Working with Catkin | ||
Catkin is ROS's build system, which traverses every ROS package in a source directory and compiles them into | ||
ROS modules. Every ROS project has a Catkin workspace structure: | ||
![Catkin workspace](https://miro.medium.com/v2/resize:fit:1400/format:webp/0*vfNM1mbkhUpvK-nW.png) | ||
|
||
This repository represents the "src" folder in this file tree. So, create a folder that will be your catkin | ||
workspace and clone this repository inside that folder. (This part might not be necessary, but rename the cloned | ||
folder "src" in case the catkin builder gives errors.) | ||
|
||
Navigate to the folder into which you cloned this repo, and run `catkin init` followed by `catkin build`. This should build the modules and | ||
create two more folders: "build" and "devel". At this point, you should source the setup script in the devel folder: | ||
|
||
`source devel/setup.bash` | ||
|
||
### Starting Nodes | ||
To start the nodes, you should first run `roscore` in a seperate terminal. This is the program that allows all | ||
ROS modules to communicate. Then, you can go back to the first terminal to start whichever node(s) you need. | ||
Navigate to the "rover" folder (or "src" if you renamed it), then use this syntax: | ||
|
||
`rosrun [package_name] [node_name]` | ||
|
||
Package names are the same as the folders that you see in the repo. You can find the node names in the "src" subfolder | ||
of each package. | ||
|
||
Also see the README in the folder "rover_system" to see how to launch all the necessary nodes for different tasks. | ||
# Running Rover Simulation | ||
- Raw sim: run `roslaunch rover_gazebo rover.launch`. |