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 ...
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 ...
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), ...
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 ...
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 ...
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) ...
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 ...
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.
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 ...
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 ...
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-...
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
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, ...
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 ...
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 ...
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 ...
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, ...
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
...
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 ...
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 ...
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 ...
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....
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 ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
c × 49arduino × 13
c++ × 8
microcontroller × 7
robotic-arm × 6
control × 5
serial × 5
communication × 4
irobot-create × 3
programming-languages × 3
avr × 3
webots × 3
mobile-robot × 2
ros × 2
wheeled-robot × 2
raspberry-pi × 2
matlab × 2
gyroscope × 2
ros2 × 2
quadcopter × 1
motor × 1
sensors × 1
kinematics × 1
pid × 1
localization × 1