6 votes

How Can A Total Beginner Become A Skilled Roboticist?

Robotics is a mixture of things like mechanical engineering, electronics engineering and software engineering! Knowing C++ is a big head start in this area! Because I strongly believe that amongst all ...
JJerome's user avatar
  • 183
5 votes
Accepted

Is using a robotic operating system still considered bare-metal C?

Bare metal programming is defined by not using any abstractions that might be provided by an OS and working directly with the hardware. Wikipedia Technopedia. ROS provides an even higher level ...
Tully's user avatar
  • 25.1k
5 votes

How Can A Total Beginner Become A Skilled Roboticist?

There are a few dimensions to being a roboticist: is knowledge of theory about robot perception (understanding the world through sensors such as cameras, signal processing and machine learning), ...
Peter Corke's user avatar
  • 1,702
3 votes
Accepted

Robot Graphical Representation in Real Time

If you are already using Qt, then Q3 3D would be an obviuos choice for 3D representations. Gaming engines like Unity (C#/JavaScript) or the Unreal Engine (C++) are also a suitable choice for ...
50k4's user avatar
  • 6,662
2 votes
Accepted

Programming A Rover

Ravi - This is a great question. So many great ideas stop simply because we don't know how to kick things off. I'll try to list a few options below for each of your questions so I don't sound like I'...
Ray K's user avatar
  • 136
2 votes

simulation of robots

For visualization and kinematics, Gazebo works fine. You can use C++ or Python to work with it. There is lots of integration with ROS as well if you like that sort of thing. If you want a clean and ...
hauptmech's user avatar
  • 4,435
2 votes

Problem with tuning PID for motor

Welcome to Robotics, Bloopie Bloops! You haven't stated what platform/language this is, so I'll just give some illustrative pseudo code. As Mark Booth mentioned, the typical way to evaluate/critique ...
Chuck's user avatar
  • 16k
2 votes

Problem with tuning PID for motor

Your goal is a bit unclear. In the sense that you don't really care about your motor control input, what you want is a given rotational velocity. the pid is going to give you the command (motor input) ...
N. Staub's user avatar
  • 1,412
2 votes

how to move my robot to the assigned coordinates

The GPS gives the actual coordinates. The compass gives the orientation. The waypoints also have coordinates, and as I see in your code, you have defined movement primitives for your robot. From the ...
50k4's user avatar
  • 6,662
2 votes

How can I allow for this code to switch from remote control to autonomous?

The code for “task autonomous()” should be outside of the main() function.
SteveO's user avatar
  • 4,386
1 vote

Writing a Publisher and Subscriber to wirelessly communicate over 2 Linux PCs in C

What you are asking for is not supported. You can not create a ros node using plain C. However, there is a fairly straightforward way: a C++ application can have both C and C++ files, and the C-...
Mike973's user avatar
  • 926
1 vote

In a Blank Webots World, How to Operate the Mavic

I have tested in 2023a and 2023b and the only change that has been necessary in Worldinfo is to set the timestep to 8 and a linear damping to 0.5 and angular 0.5
Marcelo Ortiz's user avatar
1 vote
Accepted

Initializing a ROS2 Message before calling rcl_take

It should be initialized, and therefore all fields should be initialized, including strings and sequences. The type support code is responsible for resizing, or finalizing and then re-initializing, ...
wjwwood's user avatar
  • 6,517
1 vote

Is it bad practice to declare the node as a global variable to call a service from an external callback?

I don't 100% understand the full situation but here are a couple tips: Split your file into a header and source file, then include header whenever necessary. which will fix your issue with class ...
Sebastian Schroder's user avatar
1 vote

Is using a robotic operating system still considered bare-metal C?

I second @Tully's statement that Bare Metal is defined as "without the OS in ROS". Should you use an OS depends on the size of the processor. An 8 bit μC? Bare metal C. The ROM space is so ...
Vorac's user avatar
  • 137
1 vote

Aligning the coordinate systems of accelerometer and vehicle

Edited after a clarifying comment: this was a pretty good answer, except it assumed the question was about an RC car! Gravity is your friend here. It always points straight down, exactly 1 G. Orient ...
r-bryan's user avatar
  • 1,271
1 vote

Is this encoder error expected?

This might be "normal", depending on how the signal is acquired. Whenever a signal is derived, timing of the signal acquisition is crucial. Counting ticks is not time sensitive, as it does ...
50k4's user avatar
  • 6,662
1 vote

Problem with moving heavy computation into ISR's (dspic33E)?

A great article on this approach is Build a super simple Tasker. I have implemented this on dsPIC33e mcu's. The biggest issue I faced was priority inversions that came from me trying to share ...
hauptmech's user avatar
  • 4,435
1 vote

time to Initialise or start sensor after power given

First crucial thing to know is what is your sensor - its part number, to be clear. If your sensor is digital, its initialization time is probably given in the datasheet. If you are using analog one, ...
Szczepan's user avatar
  • 450
1 vote

IRobot 690 - raw wheel encoder counts change with no movement command issued

I'm not familiar with the Rpi3 UART capabilities as I'm using a different controller with a hardware UART, but I can report that others have had difficulties using software-based UARTS with later ...
Faengelm's user avatar
  • 116
1 vote

How can I run Tests/Simulations of Control and Motion Planning for a Bare Metal Robot?

You can alter the C code structure in the Controller, so that the code you want to test is indepencent from platfrom specific code. (You can only test the platform independent code using Software in ...
50k4's user avatar
  • 6,662
1 vote

explanation of kalman filter

The Kalman filter applies to situations where we want to track a process state using a sequence of measurements (observations). The Kalman filter gives us a recursive way to estimate the process state....
Vignesh's user avatar
  • 146
1 vote

MPU9255 gyro data to roll pitch?

The problem you have is that the gyro is outputting angular velocity. Taking the integral of the angular velocity you only get the angle offset from some constant c, normally you would deal with this ...
Mark Omo's user avatar
  • 1,919
1 vote
Accepted

UR3 TCP/IP communication protocol

Based on the ports you have mentioned you are probably using URScript. Are you aware of this documentation from the UR website, describing the ethernet packets? The example given is ...
50k4's user avatar
  • 6,662
1 vote

TCP Communication with PCDuino

Sorry but its not really clear from your code whats going on, but the area drawing my attention is: ...
Code Gorilla's user avatar
1 vote

Unable to read pushbutton press properly in Arduino

A switch does not have a quick low to high or high to low transition, instead something like this. This is called switch bounce. image source: piconix.com Just to add to the answers here. There ...
Bhuvnesh's user avatar
  • 141

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