Difference between revisions of "Floor Hugger ROS 1 Indigo"

From wikidb
Jump to: navigation, search
(Phidgets Motor Controller Rewrite)
(Phidgets Install and Test)
 
(20 intermediate revisions by the same user not shown)
Line 7: Line 7:
 
* [https://robohow.eu/_media/meetings/first-integration-workshop/ros-tutorial.pdf ROS Workshop]
 
* [https://robohow.eu/_media/meetings/first-integration-workshop/ros-tutorial.pdf ROS Workshop]
 
* [[ROS Learnings]] - notes to self about what I want to learn.
 
* [[ROS Learnings]] - notes to self about what I want to learn.
 +
* [https://spectrum.ieee.org/automaton/robotics/robotics-software/wizards-of-ros-willow-garage-and-the-making-of-the-robot-operating-system Wizards of ROS: Willow Garage and the Making of the Robot Operating System]
  
 
== Launch Scripts ==
 
== Launch Scripts ==
Line 43: Line 44:
 
* [http://jbohren.com/articles/gentle-catkin-intro/ Gentle catkin intro]
 
* [http://jbohren.com/articles/gentle-catkin-intro/ Gentle catkin intro]
 
* [http://comments.gmane.org/gmane.science.robotics.ros.user/2221 multiple computers]
 
* [http://comments.gmane.org/gmane.science.robotics.ros.user/2221 multiple computers]
 +
* [[ROS Tools]]
  
 
== Phidgets Install and Test ==
 
== Phidgets Install and Test ==
Line 57: Line 59:
 
* [[Motor Control 6x Hack for Navigation]]
 
* [[Motor Control 6x Hack for Navigation]]
 
* [[Adapting SyRoTek Intro to ROS Code]] PID
 
* [[Adapting SyRoTek Intro to ROS Code]] PID
 +
* [https://index.ros.org/r/phidgets_drivers/#foxy Foxy Phidget Drivers]
  
 
== Phidgets Motor Controller Rewrite ==
 
== Phidgets Motor Controller Rewrite ==
 +
 +
I was unable to configure the Phidgets ROS motor control to working with the navigation stack.
 +
Quick experiments
 +
documented in [[Motor_Control_6x_Hack_for_Navigation]] page demonstrated that the motor driver was not
 +
coming up to the requested cmd_vel Twist message speed. This section documents my effort to rewrite
 +
the motor controller driver. It also documents anomalies in the Phidgets ROS odometry node.
  
 
* [[Robot Dynamics Resources]]
 
* [[Robot Dynamics Resources]]
 
* [[Motor Controller Rewrite]]
 
* [[Motor Controller Rewrite]]
** [[motors_go_full.py]]
+
** [[motors_go_full.py]] cmd_vel publisher for testing
 
* [[Using Transforms to Robot Base View]] Not Complete
 
* [[Using Transforms to Robot Base View]] Not Complete
 
* [[Phidgets PID]]
 
* [[Phidgets PID]]
 
** [[Phidgets PID Tuning]]
 
** [[Phidgets PID Tuning]]
 +
** [[Creating PID Tuning Graphs]]
 +
** [[Preliminary PID Turning Graphs]]
 +
** [[pid_graph.py]] The Python Script
 
* [[Odometry Glitches]]
 
* [[Odometry Glitches]]
 +
 +
== Phidgets Driver New ==
 +
 +
* [[ROS Phidgets Driver Insall]]
  
 
== OpenCV and Test ==
 
== OpenCV and Test ==
Line 171: Line 187:
 
Notes to self
 
Notes to self
  
* [[Linorobot]] Uses Neato XV-11 LIDAR, Rock Radxa ARM computer board with Ubuntu, Teensy, plus.
 
 
* [https://defendtheplanet.net/tag/raspberry-pi-robot-1/ Example ROS Pi Bot]
 
* [https://defendtheplanet.net/tag/raspberry-pi-robot-1/ Example ROS Pi Bot]
 
* [https://github.com/utexas-bwi/bwi_experimental/blob/master/bwi_dashboard/README.md BWI Dashboard]
 
* [https://github.com/utexas-bwi/bwi_experimental/blob/master/bwi_dashboard/README.md BWI Dashboard]
  
 
== ROS Robots ==
 
== ROS Robots ==
 +
 +
* [[Lentin Joseph's chefbot Code]]
 +
* [[Turtlebot 3 Code]]
 
* [http://turtlebot3.robotis.com/en/latest/ Turtlebot 3 latest]
 
* [http://turtlebot3.robotis.com/en/latest/ Turtlebot 3 latest]
 +
* [[Linorobot]] Uses Neato XV-11 LIDAR, Rock Radxa ARM computer board with Ubuntu, Teensy, plus.
 +
 +
== Curriculum ==
 +
 +
* ETH
 +
** [https://github.com/ethz-asl/ros_best_practices/wiki Best Practices]
 +
** [http://www.rsl.ethz.ch/education-students/lectures/ros.html Lectures]
 +
** [https://www.ethz.ch/content/dam/ethz/special-interest/mavt/robotics-n-intelligent-systems/rsl-dam/ROS2017/lecture4.pdf Lecture 4]
 +
** [https://www.ethz.ch/content/dam/ethz/special-interest/mavt/robotics-n-intelligent-systems/rsl-dam/documents/RobotDynamics2016/RD2016script.pdf Documents]
 +
* Imperial College London - Andrew Davison
 +
** [https://www.doc.ic.ac.uk/~ajd/Robotics/ Robotics Course]
 +
** [https://www.doc.ic.ac.uk/~ajd/Robotics/RoboticsResources/lecture2.pdf Robot Motion]
 +
 +
* [https://www.cs.hmc.edu/twiki/bin/view/Robotics/RobotReasoning2012 From Harvey Mudd CS]
 +
** [https://www.cs.hmc.edu/twiki/bin/view/Robotics/RobotReasoningLabsForGCC Labs]
 +
** [https://www.cs.hmc.edu/twiki/bin/view/Robotics/PythonCrashCourse HMC Crash Course]
 +
** [https://www.cs.hmc.edu/~dodds/ROSatSIGCSE2013/ SIGCSE Workshop]
  
 
== ROS on Intel Edison ==
 
== ROS on Intel Edison ==
Line 186: Line 221:
  
 
* [http://learn.turtlebot.com/2015/02/01/10/ Writing a TurtleBot Script] from Learn TurtleBot and ROS
 
* [http://learn.turtlebot.com/2015/02/01/10/ Writing a TurtleBot Script] from Learn TurtleBot and ROS
* [https://www.cs.hmc.edu/twiki/bin/view/Robotics/RobotReasoning2012 From Harvey Mudd CS]
+
* [https://www.cs.hmc.edu/twiki/bin/view/Robotics/PythonCrashCourse HMC Crash Course]
** [https://www.cs.hmc.edu/twiki/bin/view/Robotics/RobotReasoningLabsForGCC Cleaned up Page]
+
** [https://www.cs.hmc.edu/twiki/bin/view/Robotics/PythonCrashCourse HMC Crash Course]
+
** [https://www.cs.hmc.edu/~dodds/ROSatSIGCSE2013/ SIGCSE Workshop]
+

Latest revision as of 11:38, 11 May 2021

Overview

The focus of this project is learning ROS, SW architecture, AI algorithms and navigation. ROS is of great value because it allows me to pick and choose what I want to learn and what I want to reuse. The goal is to have fun and keep a recently retired SW architect mind in the game. There is no attempt to make this site of value to anyone else. However, I certainly don't mind if you find it of value.

Robot Operating System (ROS) is a software framework for robot software development, providing operating system-like functionality on a heterogenous computer cluster. ROS was originally developed in 2007 under the name switchyard by the Stanford Artificial Intelligence Laboratory in support of the Stanford AI Robot (STAIR) project. As of 2008, development continues primarily at Willow Garage, a robotics research institute/incubator. In 2013 it was picked up by the Open Source Robotics Foundation ROS Wikipedia Overview

Launch Scripts

Major SW functionality is tied together with launch scripts.

Hardware

Ubuntu 14.04 LTS Trusty Tahr Install

ROS Overview

ROS Install

Phidgets Install and Test

Phidgets Motor Controller Rewrite

I was unable to configure the Phidgets ROS motor control to working with the navigation stack. Quick experiments documented in Motor_Control_6x_Hack_for_Navigation page demonstrated that the motor driver was not coming up to the requested cmd_vel Twist message speed. This section documents my effort to rewrite the motor controller driver. It also documents anomalies in the Phidgets ROS odometry node.

Phidgets Driver New

OpenCV and Test

OpenCV in ROS

Integrate Above Into a Simple Behavior

Rotate the robot to follow an object captured in its web cam.

Teleop Master and Client

ROS master and client computers were configured to coordinate with publish and subscribe message.

  • The master named hood (i5 NUC) is on the floor hugger robot. It subscribes to Twist messages. In one version it publishes video frames and in another it hosts a video streaming server.
  • The remote client named adams (atom netbook) is on the desk with a joystick connected to it. It publishes Twist messages. In one version adams subscribes to video frames and in another it captures hood's video stream on a browser. In a third version an iMac was used to capture the stream on its browser.

These approaches were unusable. Adams was too slow to work with video. The iMac was capable. Twist messages where too delayed for effective control. See the following pages. This approach was abandoned in favor of investigating rosbridge.

teleop rosbridge

Kinect Notes

LIDAR

RealSense

Raspberry Pi

ROS Presentations

ROS Books

Quigley Gerkey Smart

Navigation

Notes to self

To Investigate

Notes to self

ROS Robots

Curriculum

ROS on Intel Edison


Python