Skip to content

IllinoisRoboticsInSpace/IRIS_V_control

Repository files navigation

IRIS_V_Control

The finite state machine and related packages.

Installation

This assumes you have already followed the tutorial to create a workspace with rosbuild selected, replacing all instances of "fuerte" with "hydro":
http://wiki.ros.org/ROS/Tutorials/InstallingandConfiguringROSEnvironment

Dependencies

libfreenect-dev ros-hydro-serial (add as discovered)

Conflicts

ros-hydro-libfreenect* (Need the non-ROS libfreenect since the ROS version has a different header)

Instructions

  1. roscd

  2. Clone the repository

ssh: git clone git@github.com:IllinoisRoboticsInSpace/IRIS_V_control.git

https: git clone https://github.com/IllinoisRoboticsInSpace/IRIS_V_control.git

  1. rosws set IRIS_V_control

  2. source setup.bash

Compiling

  1. roscd

  2. source setup.bash (needed if you just pulled from the repo or added packages)

  3. cd IRIS_V_control

  4. rosbuild: rosmake <package name>

Adding new packages

  1. roscd

  2. cd IRIS_V_control

  3. Follow the rosbuild package creation tutorial at:
    http://wiki.ros.org/ROS/Tutorials/CreatingPackage

Running the code

With odroid (over the network)

  1. Make sure that your /etc/hosts file on the control laptop has an entry in the format <br > <odroid IP address> odroid-desktop

  2. Make sure that the odroid /etc/hosts file has an entry in the form <br > <control laptop IP address> <control laptop name>

  3. Make sure XBOX controller is plugged into control laptop

Note: First two steps may not be necessary, but I had some issues, so might as well do it to be safe.

  1. ping odroid-desktop (make sure you can communicate with the odroid)

  2. In a terminal: ssh odroid@odroid-desktop

  3. roscd

  4. cd IRIS_V_control

Note: Make sure the arduino is plugged into the odroid if you want to talk to motors. If you are using the arduino, also make sure the "use_serial" parameter is set to "True" in the "odroid_control.launch" file. If you want to test everything without actual serial communication, set that parameter to "False"

  1. roslaunch launch/odroid_control.launch

  2. In another termal tab: export ROS_MASTER_URI=http://odroid-desktop:11311

  3. Check that you can see topics from odroid: rostopic echo /IRIS/FSM_trigger <br> You should be getting a "data: False" message every half second. If not, something is wrong with the network setup. If you're getting it, then kill the echo (Ctrl+c)

  4. roscd

  5. cd IRIS_V_control (basically make sure you're in the right folder for launch files)

  6. roslaunch launch/control_laptop.launch

Without odroid (do everything on control laptop for testing)

Note: The steps telling you to export ROS_MASTER are optional for running the code, but if you will want to echo any of the topics it becomes necessary.

  1. Make sure the XBOX controller is plugged into the control laptop

  2. Make sure the arduino is plugged into the control laptop if you want to talk to motors. If you are using the arduino, also make sure the "use_serial" parameter is set to "True" in the "odroid_control.launch" file. If you want to test everything without actual serial communication, set that parameter to "False"

  3. export ROS_MASTER_URI=http://localhost:11311

  4. roscd

  5. cd IRIS_V_control

  6. roslaunch launch/odroid_control.launch

  7. In a new terminal (and make sure it is in the IRIS_V_control folder) <br > export ROS_MASTER_URI=http://localhost:11311

  8. roslaunch launch/control_laptop.launch

Package list

IRIS_msgs

Messages containing data necessary for finite state machine to operate effectively. Includes descriptions of current and desired robot status.

manual_robot_control

Stuff needed to utilize the Xbox controller for manual control.

finite_state_machine

Provides robot state control based on the robot's status and what actions need to be taken to effectively complete the mission.

msg_relays

Passes odometry and goal data from the IRIS control scheme to the navigation stack.

serial_comm

Serial communication with the Arduino to send control commands to the EM components and get feedback and localization data.

obstacle_detection

Code to utilize the Kinect to detect obstacles in the arena and convert this data to a point cloud that can be utilized by move_base.

launch

Not technically a package. Has the launch files to launch all ROS nodes on the robot and control laptop for control and navigation purposes. Also all parameter files needed.

About

INACTIVE. Code for IRIS-V robot (2015?)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published