Obtaining Sensor Data and motor control values? - robot

I am currently using Webots and new to the software framework. I need to implement a robot at the moment and get the sensor data and motor control values from it. The robot is a self-made robot and is not one of them already implemented tutorials. Can someone elaborate on how to get those values? I am trying to implement it in C++ if someone could help me with the syntax of the code to obtain the values?

You should start by following the Webots tutorials, there is one specific for controller which explains exactly what you are trying to do and is available in c++: https://cyberbotics.com/doc/guide/tutorial-4-more-about-controllers?tab-language=c++
There is one tutorial for building your own robot too: https://cyberbotics.com/doc/guide/tutorial-6-4-wheels-robot?tab-language=c++
In any case, I would recommend following at least tutorials 1 to 6 to get familiar with Webots.

Related

Assistance with TI cc2541 replacement of existing code with custom functions

I have a small bluetooth device that uses the cc 2541 to control a toy. I am trying to build a proof of concept artefact, and have found the exact hardware i need, but it has functions already installed that don't suit me. Is there a way to replace the existing functions with new features and write them back to the device.
The current device has 10 different features, and are written into the controller.
Any advice will be appreciated

What language (or framework) can i use to build auto do some specific task in a website

I want to write a program to do some specific task in a website (ie: Auto order, auto login and post some comments). But i don't know what language or framework can help me do that.
If you know plase help me.
It sounds like you want to automate some user actions on a website, for that Selenium/Webdriver is the best library/framework if you want to do it on a Desktop or Appium if you want to do it on mobile.
Seeing as you are a beginner I would also recommend to use Python as its not only easy to get started with but its also one of the better languages in current times for anything related to automation.
I actually have multiple playlists that teach:
beginner to senior concepts in Selenium
beginner Appium concepts
how to build an advanced framework in Appium

Is there any documented example of using a custom sensor say TMP35 with cumulocity using Java

I am having a hard time understanding where exactly do we bind the hardware for example a TMP35 temperature sensor with the software (i.e. in the Java API).
Is there any documented example for this or any custom sensor (where the driver isn't already available)?
Or can anyone outline the approach to accomplish the same?
Do I need to extend the c8y.lx.driver.Driver class?
Any pointers appreciated.
I believe that TMP35 has no means of communication to the cumulocity server. So maybe anyone can please provide a way to make a custom sensor (which has a means for communication as well and is Java-enabled) link with Cumulocity? That is what I am interested in knowing?
I know that there are some certified devices which are being supported out of the box.
There are two steps:
Get the data from your analogue sensor with Java.
Send the data to Cumulocity.
Step 1 is unrelated to Cumulocity. You need an ADC, and Google provides a few examples on how to connect those (like http://www.lediouris.net/RaspberryPI/ADC/readme.html).
Step 2 is then quite simple. Create a subclass of "MeasurementPollingDriver" and implement run(). Inside run(), query the sensor using the method from Step 1 and convert that into a measurement. Send that measurement using super.sendMeasurement(measurement). Here is an example.
If you have a device library with callbacks, you could just copy the code from MeasurementPollingDriver
TemperatureMeasurement measurement = ...;
MeasurementRepresentation measurementRep = new MeasurementRepresentation();
measurementRep.setSource(mo);
measurementRep.set(measurement);
measurementRep.setTime(new Date());
measurements.create(measurementRep);

Object Detection Using WebRTC and Kurento

I have been following a very interesting tutorial about "Kurento" the media server for the WebRTC which allows multimedia communication directly through browsers. I have run the tutorials here http://www.kurento.org/docs/current/tutorials.html and have found it interesting.
My plan now is to implement a very basic object detection/recognition algorithm based on WebRTC (or Kurento) that given a simple object, it can detect it. In order to do this, I thought about the following steps.
Let's say we wish to find fruits, like apples and oranges:
Step 1 : I want to put a fix bounding box on the screen that limits the detection area, like the US-green card photo tool: http://travel.state.gov/content/visas/en/general/photos.html
(The green shape around the user face)
Step 2 : Implement a button that once pressed it can tell you the object inside the bounding box is apple or orange (e.g. based on its color or shape)
If there are ideas, I appreciate if I could know about them. Thanks
You will need to create your own module for that. There is a piece of documentation regarding that. You can use any of the existing modules as example, but I think the face detector filter is quite similar to what you are proposing.
Creating pluggable modules for Kurento is very easy. The hardest part is adding the computer vision algorithms inside those modules ;-)

3d files in vb.net

I know this will be a difficult question, so I am not necessarily looking for a direct answer but maybe a tutorial or a point in the right direction.
What I am doing is programing a robot that will be controlled by a remote operator. We have a 3D rendering of the robot in SolidWorks. What I am looking to do is get the 3D file into VB (probably using DX9) and be able to manipulate it using code so that the remote operator will have a better idea of what the robot is doing. The operator will also have live video to look at, but that doesn't really matter for this question.
Any help would be greatly appreciated. Thanks!
Sounds like a tough idea to implement. Well, for VB you are stuck with MDX 1.1(Comes with DirectX SDK) or SlimDX (or other 3rd party Managed DirectX wrapper). The latest XNA (replacement for MDX 1.1/2.0b) is only available for C# coder. You can try some workaround but it's not recommended and you won't get much community support. These are the least you need to get your VB to display some 3d stuffs.
If you want to save some trouble, you could use ready made game engine to simplified you job. Try Ogre, and it's managed wrapper MOgre. It was one of the candidate for my project. But I ended up with SlimDX due to Ogre not supporting video very well. But since video is not your requirement, you can really consider it. Most sample would be in C# also, so you need to convert to VB.Net to use. It won't be hard.
Here comes the harder part, you need to export your model exported from SolidWorks to DirectX Format (*.x). I did a quick search in google and only found a few paid tools to do that. You might need to spend a bit on that or spend more time looking for free converter tools.
That's about it. If you have more question, post again. Good Luck
I'm not sure what the real question is but what I suspect that you are trying to do is to be able to manipulate a SW model of a robot with some sort of a manual input. Assuming that this is the correct question, there are two aspects that need to be dwelt with:
1) The Solidworks module: Once the model of the robot is working properly in SW, a program can be written in VB.Net that can manipulate the positional mates for each of the joints. Also using VB, a window can be programmed with slide bars etc. that will allow the operator to be able to "remotely" control the robot. Once this is done, there is a great opportunity to setup a table that could store the sequencial steps. When completed, the VB program could be further developed to allow the robot to "cycle" through a sequence of moves. If any obstacles are also added to the model, this would be a great tool for collission detection and training off line.
2) If the question also includes the incorporation of a physical operator pendent there are a number of potential solutions for this. It would be hoped that the robot software would provide a VB library for communicating and commanding the Robot programatically. If this is the case, then the VB code could then be developed with a "run" mode where the SW robot is controlled by the operator pendent, instead of the controls in the VB window, (as mentioned above). This would then allow the opertor to work "offline" with a virtual robot.
Hope this helps.