10

Remember that there's Real Time and there's Real Time. Hard Real time is difficult to achieve without hardware support or low level software support, but you often don't need everything to be Hard Real Time capable. Soft & Firm Real Time response is much easier to achieve and is often more than adequate for many applications. Also, different parts of a ...


8

A real time system is not really required for many (most?) robotic control systems. As long as you have a control loop that runs fast enough, with low enough jitter, and doesn't miss too many cycles, then this is quite adequate for robotic control and servoing. As evidence of this, let me present the PR2 and the Shadow Robot Hand: This robot has about 20 ...


7

I still think this is off-topic, but it seems I need more space than a comment to show (answer?) why that is so. You are starting from some performance specifications and are looking to get to a set of features you need in your camera. Here is a post from NI about stereo vision that gives a formula for depth resolution: $$ \Delta z = \frac{z^2}{fb}\...


5

ROS is not a real-time operating system. The purpose of ROS was not to be like VXWorx (which is what the Mars Curiosity rover uses). ROS was developed to be a simple, generic, reusable platform for everyone to contribute to and use. Developers would be able to add their own abstracted modules, building a rich community of reusable code. The key here is ...


5

A Raspberry Pi should be sufficient for the control you intend to do with it. In designing a controller under a full multitasking operating system, like the Linux operating systems that are available for the Raspberry Pi, you have to be careful about the real-time requirements, and if the time share chunk of processor made available to your software will be ...


4

The purpose of the software determines whether it needs to be strictly real-time. Where the purpose is path planning or localization, often a low frequency is sufficent, for example, 10Hz. In these cases, a player/stage setup running on Linux is fine. We can see that there are few problems if one time step is a bit longer or shorter. Strictly real-time ...


4

In general, hard real-time OSes are used when there is a (usually periodic) task that is terminally critical, i.e. a process that needs to be run every few milliseconds, for example, and which, when queued, must be completed within a given time window to avoid a system failure. Note that "system failure" in this case doesn't have to mean that it will fry ...


4

The given strategies can be divided into two groups: model-based and model-free control. The AMPC and MARC suggestions are model-based the other are model-free. Theoretically, a pid controller can be combined with Model-based control but for reason of simplification the assumption is, that each technique is located in a certain group. Now we can ask if ...


3

You can use Orocos RTT with ROS to achieve some real time performance. In order to use this you need to patch the Linux kernel with a real time patch like PREEMPT_RT or run a real time kernel like Xenomai. You question about changing the sample time seems to actually miss the point of real time computing. Real time is not about doing calculations fast, it ...


2

Our company builds robots using FreeRTOS running on PIC microcontrollers. For us, the main reasons to use FreeRTOS is the ease of rearranging priorities on tasks, handling multiple communication lines simultaneously, and easy communication between interrupt handlers and main tasks. Microcontrollers are far cheaper than putting a full linux machine into ...


2

Start thinking about your robot in terms of multiple CPUs and the real time question shifts. If you have an algorithm that needs high speed reliable feedback such as a two wheel balancer or a quad-copter stabilizer or a servo pulse out, real time is extremely important, but the task is also very constrained. You can offload a control loop like this to a ...


2

Orocos is a mature real time robotics control software framework. I have seen it used to successfully control high speed robotic manipulators with hard real time requirements. It has many of the same framework level components as ROS, communications, configuration, serialization, and component based packaging.


2

If you actually need real-time, then you use a real-time operating system. Safety monitoring, data acquisition, and constant sample rate control loops are common subsystems that use real-time scheduling. The real-time portion of the programming is usually as small as possible, because it's more difficult to debug and less code is easier to check for ...


2

Though I did not use hand gestures, I used color based object tracking for my undergrad project. I did it through MATLAB as at that point of time I had no idea about Open-CV. I am guessing you will have a laptop for image processing and send commands run-time to your robot. Ok first thing, sending serial commands though the serial port / USB port / wifi to ...


2

The problem you want to solve is definitely a SLAM problem and not just simply localization (or maybe we can consider it SLAm since the mapping part is not as heavy). The reason for this is that you will need to do some kind of mapping for initialization when you set up the environment. Of course you could set up the environment with markers or known ...


2

As a matter of fact, if the environment is known a priori, then you don't need SLAM. It is a matter of localization problem which is simpler than SLAM in the sense that the map is given, therefore you don't need to estimate the map. In Probabilistic Robotics book chapter 7, the localization problem is addressed and they use probabilistic methods for the ...


2

Currently I am performing my research on that, and in my case I decided to tune all the PIDs. Angles of the quadrotor tend to zero, while altitude controller tend to the objective height. That's habitual in bibliography. In my particular simulations on the computer, PD parameters were enough and all the controllers adapted the same Proportional and ...


2

Short answer: yes, as long as you adjust for the real dt you are fine Longer answer: In reality, we are always using discrete time approximations of continuous time concepts of derivative and integral. So a varying dt just means the accuracy of your approximation is varying over time, but that's ok. Examples of situations where you might run into problems ...


2

I'll try to explain this in terms of software. Firstly, it is just next to impossible to have 100 metres (practically, 3 metres is like the best depth accuracy) and we need to be sure that the cameras are capturing images properly with all practical features (vibration-free and even under sunlight or rain)! (Else features will be lost and we end up with ...


2

This sounds like a great project. You should have a list of at least 20 processors from at least 10 companies that you are choosing from when starting a new project. Understand your requirements and make an informed decision. You will find that most available processor manufacturers are careful about using their products in life critical systems. For ...


2

Use an oscilloscope. Place oscilloscope probes on an i/o line on the master and a motor phase line on the slave. Toggle the i/o line just before sending the can bus command for a step change in the motor control. Measure the time difference between i/o trigger and pwm step change. Blocking the motor so it's angle does not change makes it easier to see the ...


2

The key elements to real-time motor control is the motor controller and the motion controller (which can be a CNC, a robot controller or other type of controller). The following description fits most modern industrial control systems in use today where precise motions down to the 10-50 micrometer range can be archived. The motor controller usually is not x86/...


1

One of the ways to do path tracking is by indoor mapping. In indoor mapping you can use Triangulation method. Basically, this method uses the help of Relative Received Signal Strength (RSSI) from beacons or WiFi. All you require is minimum 3 BLE/WiFi beacons positioned at three different positions in your room and a BLE/WiFi receiver. ESP32 is the best ...


1

You should find it useful to read this https://www.researchgate.net/project/A-Preview-of-Introduction-to-Fundamental-Principles-of-Dynamic-Real-Time-Systems. "Hard" real-time is a special case of the general case of "real-time." You can easily find that there are as many ad hoc "definitions" of all real-time terms as there are sources for those "definitions."...


1

Look into soundwireserver. Its an easy way to setup an audio server on a Linux or windows based system, and can be monitored from a laptop or an android phone. You need to consider processing overhead on a robot because of battery life, low processor speed etc. Its easy to setup and I know their android app works very well. A raspberry pi should have no ...


1

You don't need more frames per second, you need a shorter exposure time.


1

The short answer is no, you will not be able to create a distributed system that meets the criteria of 'hard real time' using the approach you describe. The more nuanced answer is: It is theoretically possible with a heck of a lot of work. You will have the most problems in achieving hard real time from the USB communications, the ROS code, and using python....


1

There are multiple different parts to your question. Can an Ardiuno be used "in in real-time"? Yes it can, it has hw timer interrupts, the tolerance of your oscillator will give the precision of the interrupt. Can you communicate with an Ardiuno in real-time?Yyes, you can. A synchroneus communication, e.g. SPI is realtime capable. Can you communicate ...


1

I would suggest model based pose estimation. DeMenthon and Davies describes a method for finding the pose of an object using 25 lines of Code!


1

With an Arduino, you are guaranteed to have dedicated processing power for your balancing application. That said, the calculations for PID control are not terribly complicated and I would be very surprised to hear that a Raspberry Pi could not keep up with 20 calculations per second, even under load.


Only top voted, non community-wiki answers of a minimum length are eligible