You want to use USB for communications with the computer. If you have a number of microcontrollers, you will probably only connect one of the microcontrollers directly to the computer. The other microcontrollers will need to get their commands from the main microcontroller.
The communication you choose will depend on a number of factors:
required bandwidth ...
I think you've taken a good first step; you've divided the problem into a mobile platform (which has uncertainty of position and must navigate) and the arm (which has a fair certainty of position in real time, through encoders).
I have looked at papers related to robots architecture [...] but I have yet to find information on how to have the low level ...
I can highly recommend CAN for inter processor communications. We use it in our robots, with up to 22 processors on the same bus. With good protocol design, you can use up about 90% of the available bandwidth (about 640kbps when you take into account all of the error checking and inter frame spacing). We're able to servo 10 motors at 1000Hz on one CAN bus. ...
I would say any application where a large number of communications nodes are required (sensors or actuators) would benefit from being implemented as a system bus (in contrast to point to point links such as UART or Ethernet), due to wiring complexity, determinism and modularity.
Any control system requires a high degree of determinism, which high bandwidth ...
You seem to have 2 separate (but related) problems you are trying to solve at once. Let's break down your conundrum into smaller pieces:
How do I communicate commands from a slow system (30Hz) to a fast controller (200Hz), and how do I communicate data being received at 200Hz back to my 30Hz thinktank?
How do I control what is happening at 200Hz, when I can ...
What you are looking for is called serialization. Serialization is the process of creating a string (a serial stream of data) (not necessarily NUL-terminated) from arbitrary data.
The issue serialization addresses is the fact that the same data are represented in different computers differently. For example, take this struct:
unsigned int x;
I would create a small sketch that allows you to communicate over serial port that will let you create a GUID on the desktop computer and write it to the EEPROM of your uno to a known location.
Then later on in your networked arduino code you can use that saved value. I've done this before and it's pretty simple to implement. You can even copy / paste ...
The answer to this question depends entirely on the type of connection you are using to build your network.
Assuming that when you say you have arduinos "on a network" you are using ethernet shields or similar to put them on an ethernet network, one way to accomplish your goal would be to take advantage of the MAC address on the ethernet shield as this is a ...
I was having the same problem. I finally solved the problem. This document says that you have to put CR LF (\r\n) characters after you send something in AT mode. But in the arduino code that you use, uses the Serial.write command to send command. But Serial.write command doesn't put CR LF characters. So I used Tera Term to send command. First connect PIN34 ...
From netHAT, you can find an EtherCAT shield for the Raspberry Pi:
The netHAT module developed by Hilscher adds the RaspberryPi® RealTime-communication. This enables the RaspberryPi® to be used as a slave in a PROFINET network. But not only PROFINET is possible, all other common real-time Ethernet networks such as Ethernet / IP or EtherCAT could be ...
As I suspect you found out (based on your other question 7169), doing both over the same RF link will be more truble than it is worth, You could use ip as you sujested but this might turn out to be more truble than it is worth unless your main controller is a raspberry pi or BBB that already has native networking. I am assuming you are talking about a ...
For maritime robotics, you should definitely take a look at MOOS. It is a similar middle-ware to ROS, but was originally developed at the Dept. of Ocean Engineering at MIT with Prof John Leonard. So it has a heavy maritime bent to it, but can of course be used for terrestrial (or aerial) robotics as well.
Did you initialize libusb?
From the Sourceforge documentation:
int libusb_init ( libusb_context ** context )
This function must be called before calling any other libusb function.
Seems like a trivial thing to ask but I didn't see it in your code, but I also don't see anything blatantly wrong with your code.
Once you have the image stored as a file, you can transfer that using any one of dozens of file transfer protocols, as long as it is supported by both ends of the link.
We would really like to help, but it's impossible for anyone to read your mind and see what you put on both ends of the link.
And I certainly would like to help someone building a robot that ...
I had connected some pins the wrong way.
I had connected the "EN" pin with 5V even after pairing. I was out of my brain. As soon as it came to my sight I disconnected the "EN" pin from 5V. After a few seconds it started to work....
You should update the robot references (and current position) independently if there is an update from the mouse or not. If there is an update (i.e. after 100 ms) you should update the value sent each 20ms to the robot. This way the robot shoudl never move backwards. I assume the backwards motion comeing from sending a new target position, and then sending ...
Seems like the code should work. I can suggest 3 things that might be of assistance.
Make sure you have a prominent Common Ground Sometimes your PC isn't enough
Increase the BraudRate on both devices.
Most important make sure both devices are running at the same voltage. The Intel Edison is 1.8V without the Arduino Expander and the Arduino expander has a ...
"ontology" is the search term you are looking for. There are a few. You will have to review them to see if any meet your needs.
A little background learning about ontologies will help you navigate the options.
You may be tempted to only look at ontologies made by roboticists or with the word robot in the title, but each ontology is created with a set of ...
Communicating with ROS master
It sounds like you need to point to ROS with the use of user-defined environment variables. I have a set of variables defined in my ~/.bashrc file that define where ROS is located. This is what I have defined on my device that runs roscore:
# SOurce the local workspace
I'm not entirely sure what you're asking for because your question
title mentions control but your question body seems to all be about display. You said,
My Question is, How can we implement in MATLAB/C++? So I can store 250 data of sensors as well as 60 points for real time display on the TV.
If you want to store samples for display at some particular ...
It get solved automatically and that give me clear hint that when i was using 9v 1 Amp adaptor, because of heat Arduino was getting a type of HANGED..but when i powered it with USB cable..it works fine now.
I had problems with this as well using a Pro Micro. Testing with a Mega instead and it worked no problem, using (57600) for Serial and (38400) for Serial1. I did try Serial1 as well as BTSerial with the Pro Micro, to no avail but didn't test with BTSerial on the Mega.
There's no pin 11 on the Pro Micro, so I used
SoftwareSerial BTSerial(10, 14);
There are plenty of solutions for underwater communication. Here is an example - http://www.dspcomm.com/products_aquacomm.html
You can also make one using underwater radios that divers use to communicate. Perhaps coupling a pair of them with a voice modem to keep them in the right frequency range might do the trick. Here is an example of a diver comm http://...
In this answer, I will outline some techniques for diagnosing RS232-style serial communication problems.
For a two-way serial communication link between two devices to work, at the most basic level we need a connection from TxD on device 1 to RxD on device 2 and a connection from TxD on device 2 to RxD on device 1.
Voltage or current level conversions ...
The simplest solution is throwing all values into a comma seperated string:
use the the standard strcat():
what is the best way to command these motors simultaneously?
Like all engineering questions, the answer is it depends.
First, for some general things to keep in mind read this answer even though it's about ROS, but some of the same principles apply.
In short, one particular factor deciding between one-micro-handles-all and dividing motors among slave ...
I can't comment yet (reputation limitation) so I've had to make a few assumptions...
Write an app for the smartphone that communicates with a server (over mobile data) that the ground station is also in contact with - when the ground station indicates an image has been taken, the server through the app instructs the phone to transmit it's GPS ...
Yes it works flawlessly, you just need to take care of the different parameters for the connection. Especially the flow control one needed to be set at none.
Then just send the command using a std::string and the "<<" operator.