Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   CAN (http://www.chiefdelphi.com/forums/forumdisplay.php?f=185)
-   -   CAN Nerf Robot (http://www.chiefdelphi.com/forums/showthread.php?t=86425)

Mike Copioli 05-08-2010 18:02

Re: CAN Nerf Robot
 
Quote:

Originally Posted by Radical Pi (Post 970957)
Request messages would still be blocking, right? Having some sort of asynchronous request system would be IMO an annoyance for programming and would just confuse people trying to use CAN in their code.

Requests do not have to be blocking. The gateway device could simply dump the result of the request, say current from JAG 1, 2, 3, 4... into a buffer over TCP/IP/UDP or serial. A buffer would have to exist on the application side that holds the data. A ring buffer(fifo) would work fine for this task. Basically the application requests current from the Jags, then proceeds to the next task, when the data is available a flag is set notifying the application that new data is available. The application then pops the data from the FIFO. This is probably not even necessary though. The blocking time would not be very long for even a dozen requests, sub mS. The whole process could be run on it's own thread anyway. The point is to let the CAN BUSS do all the dirty work.

Imagine this scenario:

-CAN GYRO
-CAN ADC
-CAN QUAD ENCODER
-CAN SPEED CONTROLLER

-CAN gyro node performs all of the integration math for calculating angular position.

-CAN ADC performs all of the ADC sampling and averaging and could provide position, velocity or raw analog value.

-CAN quad encoder node decodes all quadrature encoder data and provides position and velocity.

The CAN nodes will now have the functionality of sending traffic to and from each other instead of back and forth to/from the application. I want to servo speed controller 1 to the position returned by the ADC or Quadrature module. You get the idea.

Mike Copioli 05-08-2010 18:15

Re: CAN Nerf Robot
 
Quote:

Originally Posted by Radical Pi (Post 970957)
Request messages would still be blocking, right? Having some sort of asynchronous request system would be IMO an annoyance for programming and would just confuse people trying to use CAN in their code.

Requests do not have to be blocking. The gateway device could simply dump the result of the request, say current from JAG 1, 2, 3, 4... into a buffer over TCP/IP/UDP or serial. A buffer would have to exist on the application side that holds the data. A ring buffer(fifo) would work fine for this task. Basically the application requests current from the Jags, then proceeds to the next task, when the data is available a flag is set notifying the application that new data is available. The application then pops the data from the FIFO. This is probably not even necessary though. The blocking time would not be very long for even a dozen requests, sub mS. The whole process could be run on it's own thread anyway. The point is to let the CAN BUSS do all the dirty work.

Imagine this scenario:

-CAN GYRO
-CAN ADC
-CAN QUAD ENCODER
-CAN SPEED CONTROLLER

-CAN gyro node performs all of the integration math for calculating angular position.

-CAN ADC performs all of the ADC sampling and averaging and could provide position, velocity or raw analog value.

-CAN quad encoder node decodes all quadrature encoder data and provides position and velocity.

The CAN nodes will now have the functionality of sending traffic to and from each other instead of back and forth to/from the application. I want to servo speed controller 1 to the position returned by the ADC or Quadrature module. You get the idea.

kamocat 05-08-2010 20:05

Re: CAN Nerf Robot
 
It's an interesting concept, making each node partially reprogrammable for interaction between CAN devices.

taichichuan 09-08-2010 13:31

Re: CAN Nerf Robot
 
When is the CANipede slated to be available? This is the one that's based on an Arduino? Any estimated cost?

TIA,

Mike

Mike Copioli 10-08-2010 07:28

Re: CAN Nerf Robot
 
The CANipede is not based on the Arduino. An Arduino may be used to communicate with the CANipede via the CAN shield. The Arduino by itself is not powerful enough for this kind of control system. It also lacks the necessary hardware to operate in a harsh electrical environment like a robot. (over current protection, ESD protection, ...). However if one wishes to use the Arduino as a Logic Node to provide high level instructions over CAN, they may. One does not need intimate knowledge of CAN in order to leverage the control systems features. The point of the control system is to allow any processing platform to be used via a simple, standard interface. The CANipede will be available this Fall around October. Target price is about $199.99.

B.Johnston 14-11-2010 16:39

Re: CAN Nerf Robot
 
The Canipede is here!!!

http://crosstheroadelectronics.com/RCM.html

Abrakadabra 20-11-2010 15:48

Re: CAN Nerf Robot
 
Quote:

Originally Posted by B.Johnston (Post 980787)

Any word on actual availability date? Price? I would love to be able to build a CAN practice bot with one of these before the season starts.

I assume the CANipede will be available separately, for those of us who already have the 2CAN, correct?

taichichuan 24-11-2010 10:35

Re: CAN Nerf Robot
 
Any word on whether the CANipede will be approved for use on FRC robots? I know the sensors can be used. But, what about the control features?

TIA,

Mike

Alan Anderson 24-11-2010 10:45

Re: CAN Nerf Robot
 
Quote:

Originally Posted by taichichuan (Post 981818)
Any word on whether the CANipede will be approved for use on FRC robots? I know the sensors can be used. But, what about the control features?

I would be very surprised if any non-Kit-of-Parts components were permitted to control robot actuators.

taichichuan 29-11-2010 09:05

Re: CAN Nerf Robot
 
Quote:

Originally Posted by Alan Anderson (Post 981819)
I would be very surprised if any non-Kit-of-Parts components were permitted to control robot actuators.

But, wasn't the 2CAN approved last year? As a gateway between Ethernet and the CAN, wasn't it in the control path? I guess it depends on how you define "control"?

Mike

Mike Copioli 29-11-2010 15:54

Re: CAN Nerf Robot
 
Quote:

Originally Posted by taichichuan (Post 982485)
But, wasn't the 2CAN approved last year? As a gateway between Ethernet and the CAN, wasn't it in the control path? I guess it depends on how you define "control"?

Mike

The 2CAN was not specifically allowed last year. The rules allowed any team to make a device that provides a gateway between the cRIO and CAN using either the serial port or Ethernet port #2 of the cRIO. The tokenization algorithm between the Jaguars and the cRIO prevents anyone other than the cRIO from setting any throttles.

On another note the new web-site is up and running. Please take a look and provide feedback. Both positive and constructive feedback is welcome. New firmware has been posted for both the CANipede and the 2CAN. Also take at the Cross-link Control System. All of the above are available for purchase. The open source RCS(robot control software) files will be posted soon. The RCS installer is available now and is a free download.


All times are GMT -5. The time now is 00:02.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi