IUPUI's robot for the 2019 Mining for Microbes and Microfauna Agbot Challenge
To get the agbot moving perform the following steps
- Switch on the 12 volt Logic battery by fliping the amber rocker switch inside the tool box encolsure.
- Turn on the Nvidia TX2 by pressing the right most button. (Green LED on TX2 will light)
- Connect a computer or phone to the TX2 hotspot or the local wifi
- Switch on the AgBot's main power by turning the red mounted E-Switch. (Clockwise) THIS IS THE ONBOARD EMERGENCY STOP
- Switch on the Lejin Wireless Relay power located on the Power Box. (White LED on Wireless relay box will light)
- On the Lejin Wireless Remote press button 1. (White LED on Power Box will light). THIS IS THE WIRELESS EMERGENCY STOP
- Connect to the TX2 via SSH
ssh nvidia@tegra-ubuntu
(If using a phone use the Terminus App) - Turn on the PS4 controller
- In the terminal enter
checkusb
(This verifies the drive and steering system is ready) - In the terminal enter
roslaunch agbot_0 rc.launch
( Ctrl-C to terminate program) - Holding âś•... To drive forward gently press R2. To drive reverse gently press L2. Use left joystick to steer.
- On the Lejin Wireless Remote button 2 will close the solenoid for the air tank to build pressure (Not necessary to penetrate soft soil). Button 3 will extend/retract the soil probe.
Precautions and Troubleshooting
ROS Packages & Launch files (To run on the agbot runing roscore)
ROS Packages & Launch files (To run on remote PC)
Main System and Hardware Devices
-
The agbot does not stop moving or shows delayed control
- The Drive motors will go into a run away state if the wheel encoders are disconnected or intermittent. Ensure that the wheel encoder wire connections are properly attached and secure. Verify safe functionality on a jack stand before operating on the the lab floor. Always be ready to press button 1 on the wireless relay remote to activate the Emergency Stop in case this event occurs. NEVER STAND DIRECTLY IN FRONT OR BEHIND THE AGBOT
- The PID controller configuration may need additional tunning. See BasicMicro Motion Studio
- Delayed control around 1-2 sec at worst is typical.
-
ssh nvidia@tegra-ubuntu
is not working- The IP address of the TX2 is liable to changing. It might be necessary to accesses the local wifi router setup page or use a network scanner app to verify the IP address of the TX2 replacing
ssh nvidia@tegra-ubuntu
withssh nvidia@192.168.X.XXX
This IP address can be mapped to the hostnametegra-ubuntu
by appendingetc/hosts
file on Linux. - It maybe neccesary physically log onto the machine and verify network connenction with Ubiquity antenna.
- The IP address of the TX2 is liable to changing. It might be necessary to accesses the local wifi router setup page or use a network scanner app to verify the IP address of the TX2 replacing
-
The TX2 does not turn on
- Ensure the Batteries are fully charged
- Check Voltage at the ouput of the 12V regulator.
- Check Fuse
- Disconnect the barrel plug on the TX2 and wait 15 seconds then reconnect the barrel plug
- Attach Battery to Charger while attempting to turn on the TX2
- Use diffently Power Suppply. Sometimes the LiFePO4 battery is more reliable.
-
The TX2 loses power when operating
- The TX2 and be powered by either the LiFePO4 battery or the Lead Acid Battery. The drive motors can cause system brown-outs on the LiFePO4 Power Supply. To avoid the TX2 reseting, use the Lead-Acid Batteries or a separate Power Supply.
-
The PS2 controller is not working
- The PS2 controller may need to be charged. A glowing orange light will indicate it is properly charging.
-
catkin buid
is failing- the dependencies have not been properly updated in 'agbot_0/package.xml' for this project. You may need to inspect the build error message to figure out which software package could not be found. The solution usually looks something like this...
sudo apt install ros-kinetic-some_package
orsudo apt install some_library
or you may be able to just runrodep update
- the dependencies have not been properly updated in 'agbot_0/package.xml' for this project. You may need to inspect the build error message to figure out which software package could not be found. The solution usually looks something like this...
-
The Drive motors are not working
- Run 'checkusb' and verify the Roboclaw is properly wired and recieving 12V
- Reset and/or Disconnect power
- Alternate usb ports or bypass the usb hub and connect directly to the tx2.
- The PID controller configuration may need additional tunning. See BasicMicro Motion Studio
- See roboclaw_node
- See udev
- Helpful commands
lsusb
dmesg --follow
tldr
-
The Steering is not working
- Run 'checkusb' and verify the Jrk is properly and recieving 12V
- Reset and/or Disconnect power
- Alternate usb ports or bypass the usb hub and connect directly to the tx2.
- The PID controller configuration may need additional tunning. See Jrk G2 Software
- The verticle coupling attached to the linear actuator is susceptible to sliping. You may need to tighten this with a hex key.
- See jrk_motor_node
- See udev
- Helpful commands
jrk2cmd --status --full
lsusb
dmesg --follow
tldr
-
roslaunch agbot_0 main.launch
is not workingmain.launch
andekf.launch
are the most pertinent files for this project. Locailization is has only been experimentally verified for this project. It will be neccesary to play with the parameters or comment out sections to pinpoint the root cause.main.launch
was intended to be launch from a remote linux PC on the same newtork to use MapViz and other GUIs. The PS2 controller has yet to be configured to connect through the remote linux PC, so its range will be limited to Bluetooth.- See robot_localization
-
Emlid GPS is not working
- The Emlid GPS does not get a good enough signal inside the lab, the south side of the building outside usually works fine.
- Install Emlid Reach phone app or enter in the IP address in a browser to access the configurations
- The Emlid GPS currently can only use NTRIP services for INDOT RTK corrections directly over wifi. They eventually must be configured to connect the a wifi router that is on-board the Agbot or the TX2 configured as an Access Point/Hotspot to take advatage of the Ubiquity antenna network connection. However the wifi signal is usually good enough on the south side of the building.
- A possible work around to recieve INDOT RTK corrections with the Emlid configured to receive corrections over USB is to use an NTRIP Client on the TX2 using
str2str
See (https://manpages.debian.org/unstable/rtklib/str2str.1.en.html) - See launch/test_gps.launch
- See udev
- Helpful commands
lsusb
dmesg --follow
tldr
-
Phidgets IMU is not working
- This project had limited success with the accuracy of the Phidgets IMU use
rostopic listen
to verify data is recieved - I may be better to setup and use Tinkerforge Brick 2.0 IMU in tandem
- See Phidgets User Guide
- See [Preparing Sensor Data]http://docs.ros.org/melodic/api/robot_localization/html/preparing_sensor_data.html
- This project had limited success with the accuracy of the Phidgets IMU use
File structure assumptions on tx2:
nvidia@tegra-ubuntu:~/catkin_ws/src$ ls
agbot_0 CMakeLists.txt jrk_motor_node roboclaw_node
File structure assumptions on local machine to roslaunch nodes remotely:
user@machine:~/catkin_ws/src$ ls
agbot_0 jrk_motor_node mapviz nmea_navsat_driver roboclaw_node
To launch devices nodes remotely from a local machine on to the TX2:
$ export ROS_MASTER_URI='http://tegra-ubuntu.local:11311'
$ ros launch agbot_0 main.launch
NOTE: "$ export ROS_MASTER_URI=" only needs to be run once for a given terminal. The following command can use to set the envirment variable for every new terminal.
echo "ROS_MASTER_URI=http://tegra-ubuntu.local:11311" >> ~/.bashrc
This can also done by manually editing ~/.bashrc
-
- http://wiki.ros.org/nmea_navsat_driver (building from source, nmea_serial_driver)
-
- Motor Controller: Roboclaw 2x60A
- Motor Encoders: US Digital (E2-500-375-NE-D-G-1)
- Motors: AmpFlow Gearmotor (E30-400-G)
-
- Linear Acutor w/ Feedback: Glideforce LACT4P-12V-20
- Steering Controller: Jrk G2 24v13
-
- GPS: Emlid Reach M+
- GPS: Emlid Reach RS+
- GPS Antenna: Tallysman GNSS antenna for Reach M+
- IMU+Compass: PhidgetSpatial Precision 3/3/3 (1044_0B)
- IMU+Compass: Tinkerforge IMU Brick 2.0
- RTK Base Station: INDOT RTK Corrections
- Drive System Encoders
- Visual Odometry: Intel RealSense D435
-
- 5 GHz Radio: Ubiquity Rocket M5
- Omnidirectional antenna: Ubiquiti AMO-5G10
-
- 12V LiFePO4 100 Ah Battery
- 2x12V Lead-Acid 7Ah Batteries(For Computer and Roboclaw logic battery )
-
- Lejin Wireless Relay, 8 channel-12V
- 4-Way Solenoide: McMaster-Carr 6124k287
- Motor Controller: Roboclaw 2x15A
- Gear Motor: uxcell DC 12 Motor
-
- Raspberry Pi 3 B+ Flashed with Ubiquity Robotics Raspbeery Pi Image
- Steering Servo:
- Motor Controler: Roboclaw 2x15A
- Quadrature Encoder: JGA25-370-12V-201rpm (only encoder)
- GPS: Emlid Reach M+
- IMU + Compass: PhidgetSpatial Precision 3/3/3 (1044_0B)
Click here to edit this image in a browser (?t=0 to bypass caches). Use the Chrome App for native PNG+XML
Click here to edit this image in a browser (?t=0 to bypass caches). Use the Chrome App for native PNG+XML