OCCRA
Go to Post If you use a flux capacitor make certain it is a COTS component, or that you fabricate it from COTS materials. - Richard Wallace [more]
Home
Go Back   Chief Delphi > ChiefDelphi.com Website > Extra Discussion
CD-Media  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Reply
Thread Tools Rate Thread Display Modes
  #1   Spotlight this post!  
Unread 09-21-2017, 10:23 PM
Adithya Balaji's Avatar
Adithya Balaji Adithya Balaji is offline
catkin_maker (wiki.ros.org)
no team
Team Role: College Student
 
Join Date: Sep 2015
Rookie Year: 2013
Location: North Carolina
Posts: 75
Adithya Balaji has a reputation beyond reputeAdithya Balaji has a reputation beyond reputeAdithya Balaji has a reputation beyond reputeAdithya Balaji has a reputation beyond reputeAdithya Balaji has a reputation beyond reputeAdithya Balaji has a reputation beyond reputeAdithya Balaji has a reputation beyond reputeAdithya Balaji has a reputation beyond reputeAdithya Balaji has a reputation beyond reputeAdithya Balaji has a reputation beyond reputeAdithya Balaji has a reputation beyond repute
paper: Team 900 Presents— Zebravision 5.0: ROS for FRC

Thread created automatically to discuss a document in CD-Media.

Team 900 Presents— Zebravision 5.0: ROS for FRC by Adithya Balaji
Reply With Quote
  #2   Spotlight this post!  
Unread 09-21-2017, 10:24 PM
Adithya Balaji's Avatar
Adithya Balaji Adithya Balaji is offline
catkin_maker (wiki.ros.org)
no team
Team Role: College Student
 
Join Date: Sep 2015
Rookie Year: 2013
Location: North Carolina
Posts: 75
Adithya Balaji has a reputation beyond reputeAdithya Balaji has a reputation beyond reputeAdithya Balaji has a reputation beyond reputeAdithya Balaji has a reputation beyond reputeAdithya Balaji has a reputation beyond reputeAdithya Balaji has a reputation beyond reputeAdithya Balaji has a reputation beyond reputeAdithya Balaji has a reputation beyond reputeAdithya Balaji has a reputation beyond reputeAdithya Balaji has a reputation beyond reputeAdithya Balaji has a reputation beyond repute
Re: paper: Team 900 Presents— Zebravision 5.0: ROS for FRC

Zebravision 5.0 is a radical departure from previous paradigms of robot software architecture and completes the computer vision team’s take over of team 900 on the whole :slightly_smiling_face: The work centered around the implementation of ROS or Robot Operating System into the team’s overall software framework. The main goal was to improve the facility of Jetson to RoboRio communication but ROS represents much more than that. This leap in software interfacing not only allows the two systems to communicate in a dynamic manner, but also lays the foundation for sophisticated control paradigms built upon the open source ROS framework. This distributed computation model will allow advanced work on robot sensor processing, motion planning, environment perception, localization, and mapping.

Here is the link to the source code: https://github.com/FRC900/2017VisionCode
__________________


2018 - FIRST NC Volunteer
2017 - 900 - Newton Quarterfinalist, District Championship Winner, Excellence in Engineering (NC District Championship)
2016 - 900 - Excellence in Engineering (NC District Championship)
2015 - 4828 - Spirit Award (NC Regional)
2014 - 4828 - 8th Alliance Captain (NC Regional)
Reply With Quote
  #3   Spotlight this post!  
Unread 09-21-2017, 10:27 PM
marshall's Avatar
marshall marshall is offline
"Who's Marshall?"
FRC #0900 (The Zebracorns)
Team Role: Mentor
 
Join Date: Jan 2012
Rookie Year: 2003
Location: North Carolina
Posts: 3,063
marshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond repute
Re: paper: Team 900 Presents— Zebravision 5.0: ROS for FRC



We will of course be answering any questions anyone has but I want to say how rediculously proud of these students I am. They've done some truly remarkable work with this paper and I can't praise them enough for it. Also now that this paper is done we can finally kick them off the team's slack*.

*They have graduated and need to get back to college. Don't worry, we plan on keeping up this work in their absence though.
__________________
"La mejor salsa del mundo es la hambre" - Miguel de Cervantes
"The future is unwritten" - Joe Strummer
"Simplify, then add lightness" - Colin Chapman
Clarke's Laws

Last edited by marshall : 09-21-2017 at 10:32 PM.
Reply With Quote
  #4   Spotlight this post!  
Unread 09-22-2017, 01:13 AM
solomondg's Avatar
solomondg solomondg is offline
Registered User
AKA: Solomon
FRC #2898 (Flying Hedgehogs)
Team Role: Leadership
 
Join Date: Aug 2016
Rookie Year: 2016
Location: Portland, Oregon
Posts: 114
solomondg has a brilliant futuresolomondg has a brilliant futuresolomondg has a brilliant futuresolomondg has a brilliant futuresolomondg has a brilliant futuresolomondg has a brilliant futuresolomondg has a brilliant futuresolomondg has a brilliant futuresolomondg has a brilliant futuresolomondg has a brilliant futuresolomondg has a brilliant future
Re: paper: Team 900 Presents— Zebravision 5.0: ROS for FRC

Nice. We're using ROS as well, and have had some good experiences with it.

Smart idea, interfacing the NavX with the Jetson. That would solve some pain points we've been having with our implementation, but we're wary concerning some major issues we've had with its precision and accuracy (yes, it was calibrated correctly ). Was not aware you could simultaneously interface with it over both SPI and USB though, that's good to know.

Why the NavX over a sensor with more precision and accuracy, though? The BNO055 and the FXOS8700/FXAS21002 with some home-rolled EKFs are impressively solid, the latter of which I believe Adafruit has a nice breakout for.

I believe I caught a glimpse of a LIDAR on your bot. Did anything come from that? Full field localization is proving a very promising endeavor for us, although I'd advise you that SLAM is proving to be the wrong place to look, at least for us.

Are you planning on moving to a 971-in-2014-style system, with a Jetson doing the entirety of heavy lifting concerning teleop and autonomous logic? It might be worth thinking of, but our experiences have shown that with the RIO's power, it's probably more trouble than it's worth.
Reply With Quote
  #5   Spotlight this post!  
Unread 09-22-2017, 02:12 AM
Adithya Balaji's Avatar
Adithya Balaji Adithya Balaji is offline
catkin_maker (wiki.ros.org)
no team
Team Role: College Student
 
Join Date: Sep 2015
Rookie Year: 2013
Location: North Carolina
Posts: 75
Adithya Balaji has a reputation beyond reputeAdithya Balaji has a reputation beyond reputeAdithya Balaji has a reputation beyond reputeAdithya Balaji has a reputation beyond reputeAdithya Balaji has a reputation beyond reputeAdithya Balaji has a reputation beyond reputeAdithya Balaji has a reputation beyond reputeAdithya Balaji has a reputation beyond reputeAdithya Balaji has a reputation beyond reputeAdithya Balaji has a reputation beyond reputeAdithya Balaji has a reputation beyond repute
Re: paper: Team 900 Presents— Zebravision 5.0: ROS for FRC

Awesome, the more the merrier!

To answer your questions:

Quote:
Why the NavX over a sensor with more precision and accuracy, though? The BNO055 and the FXOS8700/FXAS21002 with some home-rolled EKFs are impressively solid, the latter of which I believe Adafruit has a nice breakout for.
1. The Navx has a very accurate fused direction information which was used for our field centric drive. We also began testing other accelerometers but we did not get around to implementing them. Also, USB interfaces are much more practical to work with while using the Jetson compute system. Also, there is no need to home-roll ekfs (extended kalman filters) as one of the major benefits of ROS is its extensive package suite which includes: robot localization and rtabmap which are extensively tested and work great for those purposes. We began experimenting with these tools as well.

Quote:
I believe I caught a glimpse of a LIDAR on your bot. Did anything come from that? Full field localization is proving a very promising endeavor for us, although I'd advise you that SLAM is proving to be the wrong place to look, at least for us.
2. Full field localization is also looking very promising for Team 900, I have since graduated from the team but I'm sure they are building upon the impressive preliminary results that we hinted at earlier in the season.

Quote:
Are you planning on moving to a 971-in-2014-style system, with a Jetson doing the entirety of heavy lifting concerning teleop and autonomous logic? It might be worth thinking of, but our experiences have shown that with the RIO's power, it's probably more trouble than it's worth.
3. I hope that 900 will be moving to a 900-in-2018 strategy for robot control, though I am not too familiar with 971's implementation in 2014.

Lastly, I'm actually very curious about your implementation. Is your code open source anywhere? Upon a cursory search, I could not find it anywhere.
__________________


2018 - FIRST NC Volunteer
2017 - 900 - Newton Quarterfinalist, District Championship Winner, Excellence in Engineering (NC District Championship)
2016 - 900 - Excellence in Engineering (NC District Championship)
2015 - 4828 - Spirit Award (NC Regional)
2014 - 4828 - 8th Alliance Captain (NC Regional)
Reply With Quote
  #6   Spotlight this post!  
Unread 09-22-2017, 04:21 AM
josesantos's Avatar
josesantos josesantos is online now
Mech working in Tech
FRC #5499 (The Bay Orangutans) & FRC #687 (The Nerd Herd)
Team Role: Mentor
 
Join Date: Jan 2012
Rookie Year: 2011
Location: Berkeley, CA
Posts: 124
josesantos has a reputation beyond reputejosesantos has a reputation beyond reputejosesantos has a reputation beyond reputejosesantos has a reputation beyond reputejosesantos has a reputation beyond reputejosesantos has a reputation beyond reputejosesantos has a reputation beyond reputejosesantos has a reputation beyond reputejosesantos has a reputation beyond reputejosesantos has a reputation beyond reputejosesantos has a reputation beyond repute
Re: paper: Team 900 Presents— Zebravision 5.0: ROS for FRC

Quote:
Originally Posted by Adithya Balaji View Post
3. I hope that 900 will be moving to a 900-in-2018 strategy for robot control, though I am not too familiar with 971's implementation in 2014.
*This is me showing that I spend too much time on CD/I've spent too much time in FIRST*

In 2014, 971 ran BeagleBone Black w/ a custom "cape" which, among other things, had an additional microcontroller. You can read about it here, as my attempts to describe it probably won't do the system justice.
__________________
CAMS Robotics, FIRST Team 687 The Nerd Herd 2010-Present
Mentor 2013-Present // Design Chairman 2012-2013
FIRST Team 5499, The Bay Orangutans 2014-Present
Mentor 2014-Present
2017 Houston World Champions! Thanks to teams 973, 1011, and 2928!
Reply With Quote
  #7   Spotlight this post!  
Unread 09-22-2017, 07:12 AM
marshall's Avatar
marshall marshall is offline
"Who's Marshall?"
FRC #0900 (The Zebracorns)
Team Role: Mentor
 
Join Date: Jan 2012
Rookie Year: 2003
Location: North Carolina
Posts: 3,063
marshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond repute
Re: paper: Team 900 Presents— Zebravision 5.0: ROS for FRC

Quote:
Originally Posted by solomondg View Post
we're wary concerning some major issues we've had with its precision and accuracy (yes, it was calibrated correctly ). Was not aware you could simultaneously interface with it over both SPI and USB though, that's good to know.

Why the NavX over a sensor with more precision and accuracy, though? The BNO055 and the FXOS8700/FXAS21002 with some home-rolled EKFs are impressively solid, the latter of which I believe Adafruit has a nice breakout for.
I've heard this complaint from a few people and I'm kind of baffled by it. We've been using the NavX since it first came out and haven't had any real issues with accuracy. Not only that but the Invensense chip it's based on is used all over the place - I'm always shocked to find it in quadrotors and various IMU+MCU boards that claim "best in class accuracy" and the like. In fact, it's used in the Pigeon IMU from CTRE as well.

At any rate - we're always looking at other IMUs and one of the great things about ROS is that we'll be able to fuse multiple IMUs together with minimal effort. Many of these have ROS drivers of some form and those that don't can be added and we've now got some experience with that.
__________________
"La mejor salsa del mundo es la hambre" - Miguel de Cervantes
"The future is unwritten" - Joe Strummer
"Simplify, then add lightness" - Colin Chapman
Clarke's Laws
Reply With Quote
  #8   Spotlight this post!  
Unread 09-22-2017, 09:52 AM
KJaget's Avatar
KJaget KJaget is offline
Zebravision Labs
AKA: Kevin
FRC #0900
Team Role: Mentor
 
Join Date: Dec 2014
Rookie Year: 2015
Location: Raleigh, NC
Posts: 157
KJaget has a reputation beyond reputeKJaget has a reputation beyond reputeKJaget has a reputation beyond reputeKJaget has a reputation beyond reputeKJaget has a reputation beyond reputeKJaget has a reputation beyond reputeKJaget has a reputation beyond reputeKJaget has a reputation beyond reputeKJaget has a reputation beyond reputeKJaget has a reputation beyond reputeKJaget has a reputation beyond repute
Re: paper: Team 900 Presents— Zebravision 5.0: ROS for FRC

Quote:
Originally Posted by solomondg View Post
Nice. We're using ROS as well, and have had some good experiences with it.

Smart idea, interfacing the NavX with the Jetson. That would solve some pain points we've been having with our implementation
Synchronizing time across machines, I'm guessing? We're hoping some of the RTC implementations pan out this year.

Quote:
I believe I caught a glimpse of a LIDAR on your bot. Did anything come from that? Full field localization is proving a very promising endeavor for us, although I'd advise you that SLAM is proving to be the wrong place to look, at least for us.
We've had OK initial luck with slam-gmapping, at least in the lab : https://youtu.be/zn2RehpMaaQ That's using a LIDAR for mapping and a ZED camera for visual odometer. Should improve with encoder data, I'd assume. No idea how that'll translate to field-like conditions, though.

Quote:
Are you planning on moving to a 971-in-2014-style system, with a Jetson doing the entirety of heavy lifting concerning teleop and autonomous logic? It might be worth thinking of, but our experiences have shown that with the RIO's power, it's probably more trouble than it's worth.
We're not sold on anything in particular now. The hope is that if we break up the code into discrete ROS nodes, moving things between RIO and Jetson (and driver station ) won't be that big of a deal aside from changing a launch file or two. Obviously there will be hardware limitations e.g. CAN motor controls are way easier on the RIO than the Jetson, and try not to pass camera data over the network. But if the nodes are modular enough we can easily decide to start them on one device or the other depending on what we find during testing.

As to the RIO's power, agree it is nice but there's always room for more (e.g. we have this kinda working on our bot and it is CPU hungry : https://www.youtube.com/watch?v=e1Bw6JOgHME)

Last edited by KJaget : 09-22-2017 at 09:56 AM.
Reply With Quote
  #9   Spotlight this post!  
Unread 09-23-2017, 06:21 PM
botster botster is offline
Registered User
FRC #3256
Team Role: Engineer
 
Join Date: Sep 2016
Rookie Year: 2014
Location: San Jose
Posts: 28
botster is an unknown quantity at this point
Re: paper: Team 900 Presents— Zebravision 5.0: ROS for FRC

Quote:
Originally Posted by KJaget View Post
We've had OK initial luck with slam-gmapping, at least in the lab : https://youtu.be/zn2RehpMaaQ That's using a LIDAR for mapping and a ZED camera for visual odometer. Should improve with encoder data, I'd assume. No idea how that'll translate to field-like conditions, though.
How do you plan on using the mapping/localization on the field, as the see through walls won't be detected very well, and the surrounding areas around the field will change from competition to competition. Or do you plan to remap the field each competition?

Also, was the main purpose of using ROS to implement the transforming frames, so that you can account for the location of the camera in respect to the rest of the robot? The only other use of ROS I can see, is for some sort of localization using a lidar or stereocamera.
Reply With Quote
  #10   Spotlight this post!  
Unread 09-23-2017, 07:08 PM
marshall's Avatar
marshall marshall is offline
"Who's Marshall?"
FRC #0900 (The Zebracorns)
Team Role: Mentor
 
Join Date: Jan 2012
Rookie Year: 2003
Location: North Carolina
Posts: 3,063
marshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond reputemarshall has a reputation beyond repute
Re: paper: Team 900 Presents— Zebravision 5.0: ROS for FRC

Quote:
Originally Posted by botster View Post
How do you plan on using the mapping/localization on the field, as the see through walls won't be detected very well, and the surrounding areas around the field will change from competition to competition. Or do you plan to remap the field each competition?
Examine the field perimeter closely.

Quote:
Originally Posted by botster View Post
Also, was the main purpose of using ROS to implement the transforming frames, so that you can account for the location of the camera in respect to the rest of the robot? The only other use of ROS I can see, is for some sort of localization using a lidar or stereocamera.
The transformation of coordinate systems is just one of many reasons we took on this transition. There are a lot of uses for ROS - for instance - it reduces the amount of work it takes for us to add additional advanced sensors to the robot. It also opens a lot of sensors that would previously require custom drivers and software.
__________________
"La mejor salsa del mundo es la hambre" - Miguel de Cervantes
"The future is unwritten" - Joe Strummer
"Simplify, then add lightness" - Colin Chapman
Clarke's Laws
Reply With Quote
  #11   Spotlight this post!  
Unread 09-25-2017, 11:15 AM
KJaget's Avatar
KJaget KJaget is offline
Zebravision Labs
AKA: Kevin
FRC #0900
Team Role: Mentor
 
Join Date: Dec 2014
Rookie Year: 2015
Location: Raleigh, NC
Posts: 157
KJaget has a reputation beyond reputeKJaget has a reputation beyond reputeKJaget has a reputation beyond reputeKJaget has a reputation beyond reputeKJaget has a reputation beyond reputeKJaget has a reputation beyond reputeKJaget has a reputation beyond reputeKJaget has a reputation beyond reputeKJaget has a reputation beyond reputeKJaget has a reputation beyond reputeKJaget has a reputation beyond repute
Re: paper: Team 900 Presents— Zebravision 5.0: ROS for FRC

Quote:
Originally Posted by botster View Post
How do you plan on using the mapping/localization on the field, as the see through walls won't be detected very well, and the surrounding areas around the field will change from competition to competition. Or do you plan to remap the field each competition?
Mapping results don't necessarily need to look like human-readable maps to work for localization. Granted there would be problems if the robot tried to drive through invisible-to-it field perimeter, but it isn't a deal-breaker.
And yeah, because of that we might end up remapping for each new field (or even new match, depending on how things work out). Right now we're just barely scratching the surface of it.

Quote:
Also, was the main purpose of using ROS to implement the transforming frames, so that you can account for the location of the camera in respect to the rest of the robot? The only other use of ROS I can see, is for some sort of localization using a lidar or stereocamera.
These are two pretty important reasons, yes. Some of the ROS object detection code also uses it to identify where objects are with respect to the robot. That can be tied into localization.

But the main reason to use it is because pretty much everything in ROS is set up to use it already. No point in reinventing the wheel. We're going through the pain of working with ROS's framework to pick up all the cool tools that others have developed for it. Using the tf stuff is yet another way to get closer to that goal.
Reply With Quote
  #12   Spotlight this post!  
Unread 12-04-2017, 11:50 AM
dwheeler dwheeler is offline
Registered User
AKA: David Wheeler
FRC #4638 (Jagbots)
Team Role: Mentor
 
Join Date: Dec 2017
Rookie Year: 2017
Location: Germantown, MD
Posts: 3
dwheeler is an unknown quantity at this point
Re: paper: Team 900 Presents— Zebravision 5.0: ROS for FRC

Thanks, Team 900, for introducing ROS and writing it up so well!

I'm a new mentor for team 4638 and a professional software engineer using ROS at work. So I was excited to read that ROS has been proven out in FRC.

Unfortunately, I haven't been able to make it work myself, though. I have the RoboRIO trying to connect to a Jetson TX2. The Jetson is the ROS master, running kinetic. And the RoboRIO is using ROS for Labview installed from source from the Tufts github site. When the RIO tries to register a node, it fails to send any traffic to the master. (Earlier in the process, the RIO is able to open and close a connection to the ROS core, confirming that it's available.) And we end up with an error 403302, as described in a coule of the unresolved issues on the github site.

[I believe all the environment settings, ROS_MASTER_URI, ROS_IP, etc. are set correctly and using appropriate values.]

So I'm trying to figure out how to navigate this minefield. Are the ROS users here running the master on the RIO or an external processor, like the Jetson? What version of the ROS for Labview code are you using? (Source or VIPM installation) Did you have to modify it at all to run on the RIO? Is there some trick to deploying the ROS for LabVIEW library to the RIO? In one of the issues on github was the comment, "there's something wrong with where ROSDefinitions gets stored.... The Global variables aren't being set correctly." This seems to be our problem. I'm hoping if you all share some more details of how you're employing ROS, I can work through this.

Thanks,

Dave Wheeler
Reply With Quote
Reply


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 07:55 PM.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin®
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi