A brief note to set the stage for some posts I'll be making: I have switched to Linux. With the expiration of XP support it was time to switch and I wanted to get off the Windows treadmill. I also wanted to switch to start using Robot Operating System (ROS) with OpenCV for my projects.
I bought a bare-bones desktop machine with quad-core I7 @ 3.6 GHz with 8 Gb of memory. Just a TB of disk since I don't store a lot of video, games, etc. I add a System 76 laptop also with quad-core I7 but not as fast, also with 8 Gb memory. I went with high end machines but didn't pay for the premium processors which would have added $$200-300 to the cost. My thought was to get machines that will last for 5-6 years if they don't break.
Both have Ubuntu 14.04 LTS but I could not stand the Unity interface. Sorry, but these machines shouldn't look like giant smartphones. I installed Gnome to get a menuing interface.
I've been quite happy and have gotten used to Linux. There are still a few places where the Linux and program developers need to be sat down and beaten with rubber hoses until they fix problems. The main one is you should be able to position windows and have them start up in the same place. My understanding is both groups point the finger at the other one saying, "It's your responsibility." It probably needs support from both sides so just fix it, dang it.
06 September 2015
27 June 2014
Cold Turkey on Linux
I bit the bullet a few weeks ago with Linux. I was getting ready to go to WPI for the SRR competition and decided to go cold turkey on my laptop. I put in a SSD and loaded Zorin Linux. It us recommended as a substitute for Win XP. One reason I liked it is the rolling upgrades instead of the Ubuntu staged upgrades.
There was still frustration. The WiFi did not work so I used the software updater to install the drivers it found from Broadcom. The OS would not boot after that. I reinstalled just before leaving and took the memory stick with the Zorin Live distro with me figuring I could always reload from it. I was impressed by the quickness of the installation. That encouraged me since if I messed up the laptop I could always quickly reinstall. I also had my iPad so accessing email, FB, and Twitter (I did a lot of tweeting with photos) were always available.
I kept busy so it was not until Friday night up in VT to visit my sister that I had time to do much with the laptop. I cannot recall what I did - may have changed some GUI options - but the system got messed up. When Zorin boots it shows a menu that allows recovery mode boot, and also to boot into a previous release.
At one point I tried the recovery mode. One option was to connect to the network which I did - wired not WiFi - and then to restore packages and the default configurations. After that I continued the boot and things were back to normal. I think it was mainly the configurations that made the difference. What really impressed me is that my user account and some other user settings were still there. I've done restore operations in other situations and lost user specific configuration information that I thought should have been saved.
I tried the update drivers but selected a different option. No good. Even the restore packages did not help. In desperation I booted into the previous version of Zorin. It came up fine with my user account.
This time I searched the web for information on installing the WiFi drivers. Cannot recall what I found but it worked. It even automatically found the hotel WiFi and connected. All I needed was to go to their web page and accept the terms.
I got email and other stuff working and have not touched the laptop since coming home. I cannot recall if I got the later Zorin release fixed or not.
One thing that disappointed me was the speed. I expected the system to be more responsive than the XP that was on there, especially with an SSD installed. Of course it is hard to compare the speed but I was not impressed by the response.
Being encouraged by this I turned to an older PC I had setup last year with XP and Ubuntu during my last foray into Linux. I first tried to install the 64 bit Zorin because the CPU is an AMD 64 bit. But it just hung. Finally found a comment that said with 2G memory or less the Zorin 64 would not install. Thanks for the error message, guys.
I tried Zorin Lite but it is really stripped down so replaced it with the standard Zorin 32. It is up and running but it is sluggish. The system is not that old - hey, it has an AMD 64 bit CPU - so it is a bit disappointing even for just the testing I am doing. For example, just opening Files (Nautilus, I guess) takes 10 seconds or so.
Since my main interest is using Linux on robots I loaded ROS (Robot Operating System) and OpenCV (for vision processing). Both installs went smoothly, something I usually don't experience with Linux. It is especially encourage for ROS since they recommend Ubuntu but I hoped that Zorin, as a derivative, would be okay.
I successfully worked through some of the ROS tutorials but the sluggishness bugged me. But they did work which is hopeful.
Loading OpenCV was tedious because it compiles from source. It t-o-o-k f-o-r-e-v-e-r. But it did install and I then was able to build the C++ samples. Don't know why the install did not build them since it did the C examples. But again, f-o-r-e-v-e-r. I read a couple chapters of a book while it cranked away.
Overall encouraging, enough that I am considering getting a new system for Linux work. It would have a lot of RAM (16G or more), a multi-core CPU and directly support two monitors. I don't know that my code based for the robot will ever be gigantic but I do not want to wait for it. This is the first time I am going for a fast machine.
I am actually tempted to get a System76 laptop: https://system76.com/laptops/model/bonx8 and use it for my main machine. But I would need it to support the second monitor and need to check on that.
There was still frustration. The WiFi did not work so I used the software updater to install the drivers it found from Broadcom. The OS would not boot after that. I reinstalled just before leaving and took the memory stick with the Zorin Live distro with me figuring I could always reload from it. I was impressed by the quickness of the installation. That encouraged me since if I messed up the laptop I could always quickly reinstall. I also had my iPad so accessing email, FB, and Twitter (I did a lot of tweeting with photos) were always available.
I kept busy so it was not until Friday night up in VT to visit my sister that I had time to do much with the laptop. I cannot recall what I did - may have changed some GUI options - but the system got messed up. When Zorin boots it shows a menu that allows recovery mode boot, and also to boot into a previous release.
At one point I tried the recovery mode. One option was to connect to the network which I did - wired not WiFi - and then to restore packages and the default configurations. After that I continued the boot and things were back to normal. I think it was mainly the configurations that made the difference. What really impressed me is that my user account and some other user settings were still there. I've done restore operations in other situations and lost user specific configuration information that I thought should have been saved.
I tried the update drivers but selected a different option. No good. Even the restore packages did not help. In desperation I booted into the previous version of Zorin. It came up fine with my user account.
This time I searched the web for information on installing the WiFi drivers. Cannot recall what I found but it worked. It even automatically found the hotel WiFi and connected. All I needed was to go to their web page and accept the terms.
I got email and other stuff working and have not touched the laptop since coming home. I cannot recall if I got the later Zorin release fixed or not.
One thing that disappointed me was the speed. I expected the system to be more responsive than the XP that was on there, especially with an SSD installed. Of course it is hard to compare the speed but I was not impressed by the response.
Being encouraged by this I turned to an older PC I had setup last year with XP and Ubuntu during my last foray into Linux. I first tried to install the 64 bit Zorin because the CPU is an AMD 64 bit. But it just hung. Finally found a comment that said with 2G memory or less the Zorin 64 would not install. Thanks for the error message, guys.
I tried Zorin Lite but it is really stripped down so replaced it with the standard Zorin 32. It is up and running but it is sluggish. The system is not that old - hey, it has an AMD 64 bit CPU - so it is a bit disappointing even for just the testing I am doing. For example, just opening Files (Nautilus, I guess) takes 10 seconds or so.
Since my main interest is using Linux on robots I loaded ROS (Robot Operating System) and OpenCV (for vision processing). Both installs went smoothly, something I usually don't experience with Linux. It is especially encourage for ROS since they recommend Ubuntu but I hoped that Zorin, as a derivative, would be okay.
I successfully worked through some of the ROS tutorials but the sluggishness bugged me. But they did work which is hopeful.
Loading OpenCV was tedious because it compiles from source. It t-o-o-k f-o-r-e-v-e-r. But it did install and I then was able to build the C++ samples. Don't know why the install did not build them since it did the C examples. But again, f-o-r-e-v-e-r. I read a couple chapters of a book while it cranked away.
Overall encouraging, enough that I am considering getting a new system for Linux work. It would have a lot of RAM (16G or more), a multi-core CPU and directly support two monitors. I don't know that my code based for the robot will ever be gigantic but I do not want to wait for it. This is the first time I am going for a fast machine.
I am actually tempted to get a System76 laptop: https://system76.com/laptops/model/bonx8 and use it for my main machine. But I would need it to support the second monitor and need to check on that.
17 June 2014
Programming Language and Vision Processing for SRR 2014
Here is an update for 2014 of the survey I did last year on the software used by the teams. I did not compete this year but could not stay away. I arrived on the 10th and left late on the 13th. I missed the Saturday re-run of the Level 1 competition. I sent a lot of tweets with pictures. Check the tag #srrbot on Twitter.
Team Language Vision Processing
Oregon State C++/Python OpenCV
Sourcerers C++ OpenCV
Retrievers Python OpenCV
UCSC C/C++ OpenCV
West Virginia Python/C++ OpenCV
Cephal Python OpenCV
Stellar VB RoboRealm
Fetch C# OpenCV
Fomicarum Java OpenCV
Almost all the teams used Linux and ROS.
Team Language Vision Processing
Intrepid C++/Matlab
Kuukulgur C++ OpenCV
Survey C++, Python OpenCV
Middleman LabView LabView
UCSC C/C++ OpenCV
Waterloo C++,Python
WPI C++
Wunderkammer Python ROS vision packagesOregon State C++/Python OpenCV
Sourcerers C++ OpenCV
Retrievers Python OpenCV
UCSC C/C++ OpenCV
West Virginia Python/C++ OpenCV
Cephal Python OpenCV
Stellar VB RoboRealm
Fetch C# OpenCV
Fomicarum Java OpenCV
Almost all the teams used Linux and ROS.
01 February 2014
Science Fair and Texas Torque, FIRST Robotics World Chapmions
I spent today at the a local science fair event. There are more of them spread over the next few weekends. Today's had an elementary school festival and science / math bowl competitions. Next week is the Junior High and, the week after, the Senior High Engineering Design Competition. These both involve building robots.
There was also a robotics demonstration today and I volunteered for it, naturally. The main activity was the Texas Torque team demonstrating their robot, which won last year's FIRST World Championship. It also was one of the teams leading the Macy's Thanksgiving day parade last November. Last year's challenge was to throw Frisbees through rectangles at one end of the arena.
Not only is the robot impressive but so are the team members. I spoke with Robert and Matthew, mainly, but a couple others approached me to see if I had questions. This competition is for high-school students and, to be blunt, you have to be impressed by their poise and ability to engage with adults and children about their team and robot.
I spoke also with one of the fathers and he related how these young people had to learn to work together. They are all very smart and quite used to having correct answers. Obviously when building a robot like this all their answers cannot be correct so a big learning experience is compromising and considering other ideas.
Participating in this team provided experience in team-work that most students only get through organized sports in high school. Unfortunately in Texas that also comes with adulation that is not always beneficial. This team experience is more beneficial, I believe.
Now on to the robot...
There was also a robotics demonstration today and I volunteered for it, naturally. The main activity was the Texas Torque team demonstrating their robot, which won last year's FIRST World Championship. It also was one of the teams leading the Macy's Thanksgiving day parade last November. Last year's challenge was to throw Frisbees through rectangles at one end of the arena.
Not only is the robot impressive but so are the team members. I spoke with Robert and Matthew, mainly, but a couple others approached me to see if I had questions. This competition is for high-school students and, to be blunt, you have to be impressed by their poise and ability to engage with adults and children about their team and robot.
I spoke also with one of the fathers and he related how these young people had to learn to work together. They are all very smart and quite used to having correct answers. Obviously when building a robot like this all their answers cannot be correct so a big learning experience is compromising and considering other ideas.
Participating in this team provided experience in team-work that most students only get through organized sports in high school. Unfortunately in Texas that also comes with adulation that is not always beneficial. This team experience is more beneficial, I believe.
Now on to the robot...
24 January 2014
Team Waterloo Research Paper on SRR
Team Waterloo published about their work on a robot for the 2012 and 2013 NASA Sample Return Robot Centennial Challenges.
Mapping, Planning, and Sample Detection Strategies for Autonomous Exploration
This paper presents algorithmic advances and field trial results for autonomous exploration and proposes a solution to perform simultaneous localization and mapping (SLAM), complete coverage, and object detection without relying on GPS or magnetometer data. We demonstrate an integrated approach to the exploration problem, and we make specific contributions in terms of mapping, planning, and sample detection strategies that run in real-time on our custom platform. Field tests demonstrate reliable performance for each of these three main components of the system individually, and high-fidelity simulation based on recorded data playback demonstrates the viability of the complete solution as applied to the 2013 NASA Sample Return Robot Challenge.It is the Journal of Field Robotics in the Wiley Online Library. I could, and probably will, spend a lot of time with the back issues in the Journal.
14 January 2014
Accelerating SRR Development While Gyrating Wildly
Decoding the title, I am experimenting with the Phidgets 1042 spatial sensor, also known as an Inertial Measurement Unit (IMU). This IMU contains an accelerometer, a gyroscope, and a compass. The compass is not allowed for competing in the SRR so it is being ignored.
I worked with this IMU for the 2013 SRR but could not get the results needed so I put it aside. Since the first of the year and getting more serious about the 2014 SRR, I began working with it more.
As I did last year, I began working with code I found that would fuse the accelerometer and gyroscope data into a single reading of the global pose of the robot. The results never came out correct. The main problem was the reading for bearing, primarily based on the gyroscope data, was inaccurate. I setup a servo to rotate the IMU through 90 degrees (or a fairly close approximation) but the results usually were less, somewhere in the mid-80 degree range.
After fussing with the code I decided to try a really basic test. First, some background information.
A gyroscope of this nature reports the angular change during a period of time. Specifically, this IMU reports degrees / second and the amount of time between readings. Multiplying the reading by the amount of time tells you the actual rotational movement for that period. Integrating those results provides the current angular position of the IMU. Thus:
\[
\large \theta_{t} = \sum \omega_{t}dt \\
\theta_{t} \text{ is angular movement at time } t \]
I worked with this IMU for the 2013 SRR but could not get the results needed so I put it aside. Since the first of the year and getting more serious about the 2014 SRR, I began working with it more.
As I did last year, I began working with code I found that would fuse the accelerometer and gyroscope data into a single reading of the global pose of the robot. The results never came out correct. The main problem was the reading for bearing, primarily based on the gyroscope data, was inaccurate. I setup a servo to rotate the IMU through 90 degrees (or a fairly close approximation) but the results usually were less, somewhere in the mid-80 degree range.
After fussing with the code I decided to try a really basic test. First, some background information.
A gyroscope of this nature reports the angular change during a period of time. Specifically, this IMU reports degrees / second and the amount of time between readings. Multiplying the reading by the amount of time tells you the actual rotational movement for that period. Integrating those results provides the current angular position of the IMU. Thus:
\[
\large \theta_{t} = \sum \omega_{t}dt \\
\theta_{t} \text{ is angular movement at time } t \]
The test is simple. Setup the servo to rotate 90 degrees with the IMU flat. The z axis, up and down, of the gyro should have a rotation of 90 degrees following the equation above.
14 December 2013
Revising the SRR Web Material
I have been fighting with fatigue since the June SRR competition. Finally seem to be overcoming it with some medications, better sleep habits, and who knows what else that may be making it better. As a result I am reworking and rethinking the Sample Return Challenge on my website. New material is under 2014 Table of Contents. Pages I am working on have WIP (work in progress) in their title. Comments and suggestions are appreciated here, via email, or on Facebook.
Happy holidays to all of you. May the robot of your desires be under the tree.
Happy holidays to all of you. May the robot of your desires be under the tree.
Subscribe to:
Posts (Atom)
SRC2 - Explicit Steering - Wheel Speed
SRC2 Rover This fourth post about the qualifying round of the NASA Space Robotics Challenge - Phase 2 (SRC2) addresses t he speed of the ...
-
The brain of a robot is the software. The software has to take in the sensor data, interpret it, and generate commands to the actuators. On...
-
Another NASA Centennial Challenge began earlier this year. It will be the 3rd I've entered. I also entered the 2019 ARIAC competition...
-
SRC2 Rover This fourth post about the qualifying round of the NASA Space Robotics Challenge - Phase 2 (SRC2) addresses t he speed of the ...