12
votes
How to setup CLion for ROS?
Start CLion from a commandline with your sourced ROS workspace (i.e. after calling source devel/setup.bash)
Open a project's CMakeLists.txt, and tell it to open it ...
6
votes
Programming Inverse Kinematics in C++
I agree with SteveO that there is nothing wrong with reinventing the wheel if you want to learn about wheels. And for a single application, 4 DoF arm, the IK is probably not too hard.
But I feel ...
Ben♦
- 5,215
6
votes
How to setup CLion for ROS?
Integrating CLion with ROS is actually straight forward and works out of the box if one knows how to do it:
With your console, go into your ROS workspace and source the respective ...
5
votes
Accepted
Programming Inverse Kinematics in C++
It is rather straightforward to implement inverse kinematics for a particular manipulator in C++. Of course, you need to begin with the inverse kinematic equations themselves. Putting those into ...
4
votes
Is there any C++ library I could use to program a robotic manipulator involving forward and inverse kinematics?
The best way to understand forward and inverse kinematics is to write a library for its own. A good starting point is to implement Cyclic Coordinate Descent.
So called "ready-to-run" librarys like ...
4
votes
Accepted
Create a simple C++ client Application to control KUKA's Robot-arm LBR iiwa via FRI
I have a library called grl which integrates control of a KUKA iiwa in C++.
Right now the most reliable mechanism I've found for control is to receive state over FRI, then send state via Java. All ...
4
votes
Accepted
How to become proficient in software development for an aspiring roboticist?
If you make a career of robotics, you will come in contact with a lot of languages, a lot of libraries, and a lot of systems.
The more you know about the fundamentals, the easier it will be to adjust ...
4
votes
Accepted
Adjusting the PWM frequency and duty cycle to achieve the desired angular velocity in differential drive robots
At first, I did not go trough your code to check for errors in the formulas but from a high level perspective this seems ok. Therefore, your position controller is fine.
What you lack is a lowlevel ...
4
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 ...
4
votes
PID Control: Is adding a delay before the next loop a good idea?
Don't disengage your controller.
The purpose of a controller is not only to steer your system to the desired setpoint according to a predetermined dynamical response but also to counteract potential ...
4
votes
Accepted
Does a stable library exist for docking robots using images?
There's a lot of solutions out there already for this. I'll start by suggesting AR tags not QR tags. They're better optimized for localizing.
The Alvar library is commonly used for tracking AR tags.
...
3
votes
Accepted
ros send message on startup doesn't seem to work
I experimented a bit and here's what I think happens.
When you run
$ rostopic echo /questions
The /questions topic doesn't ...
3
votes
Accepted
Connecting an Arduino uno with a beaglebone black over USB
Beaglebone USB
When you plug a USB cable between the USB B plug of the Arduino Uno and the USB A plug of the Beaglebone Black, the Beaglebone should be able to talk and listen to it the same way any ...
3
votes
redundant arm path planning and trajectory following
To expand on Alexandre's answer:
Controlling the arm with the Jacobian along an end-effector trajectory is one way to do it. However, this will not give you obstacle avoidance. Although you could ...
Ben♦
- 5,215
3
votes
Accepted
How to transfer signed integers with libusb?
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 ...
3
votes
Implementation of inverse kinematics solution in c++
It is a bit hard to know the exact cause of the error without having the (RobWork), I tried to install it following the link your provided, but I ran into some problems and I don't have the time to ...
3
votes
Accepted
Implementing an analytic version of an inverse kinematic
Given a desired pose:
$$T^{desired} = \begin{bmatrix}
s_x&n_x&a_x&P_x\\
s_y&n_y&a_y&P_y\\
s_z&n_z&a_z&P_z\\
0&...
3
votes
Implementing an analytic version of an inverse kinematic
Your Jacobian-based approach is great for velocity control, or when the manipulator is close to the original point. But remember, the Jacobian only gives a first-order approximation to the ...
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 ...
3
votes
Accepted
Multiple View Triangulation method used by COLMAP
This method is minimizing the reprojection error of the triangulated point. How to see this: Let $P_i$ be the $3 \times 4$ projection matrices, and let $x_i \in \mathbb{R}^3$ be the (homogenized ...
3
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
Some Kalman filter implementation queries
Answers are inline
Qn 1. Does kalman filter require constant time step?
Correct it does not.
The reason you may find in literature that it requires a constant time step has to do with with lack ...
3
votes
difference between the two constructors
IMHO the main difference is, that inside function/method the first one (object) is allocated on the stack and destroyed after leaving the function, while the other (pointer) allocates its data on the ...
3
votes
Accepted
C++ (ROS node) for Euler Integration to estimate Velocity knowing the acceleration
I find it easiest to make a class for stuff like this, where you have data you want to use between callbacks, or your want to publish a message inside of another callback. For example, your class ...
2
votes
Does C have advantages over C++ in robotics?
As the comments indicate, the answer is really based on what you want to do with the programs you write. There are a lot of benefits to the object oriented capabilities of C++. But the inheritance, ...
2
votes
Is there a simpler way than ROS for 5 DOF Dynamixel arm control
The library call could be as simple as these two OpenRave Python lines:
robot.GetController().SetPath(traj)
robot.WaitForController(0)
Of course the types would ...
Ben♦
- 5,215
2
votes
Is there a simpler way than ROS for 5 DOF Dynamixel arm control
Cross post on YARP Q&A channel:
https://github.com/robotology/QA/issues/54
2
votes
Accepted
Stereo Vision Using Compute Module: Pi camera synchronization
You need real camera synchronization which means using cameras that both have external trigger capability (it is like the "remote shutter" on consumer/DSLRs). What you do is feed a common trigger ...
2
votes
Accepted
How to split tasks between interrupts and the main loop on a bare metal controller?
Some very general advice.
My first impression from your question is that you are struggling with the fact that no hardware provides infinite resources. You can either slow down your control loops or ...
2
votes
Is there any C++ library I could use to program a robotic manipulator involving forward and inverse kinematics?
I haven't used it personally (yet; it's only a matter of time), but I believe the Rigid Body Dynamics Library is what you're looking for - efficient forward and inverse kinematics.
I did a lot of work ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
c++ × 82ros × 23
inverse-kinematics × 10
robotic-arm × 9
arduino × 8
opencv × 6
c × 6
slam × 5
control × 4
pid × 4
imu × 4
python × 4
kinematics × 3
kalman-filter × 3
raspberry-pi × 3
motion-planning × 3
gazebo × 3
software × 3
serial × 3
communication × 3
mobile-robot × 2
quadcopter × 2
wheeled-robot × 2
forward-kinematics × 2
stepper-motor × 2