I'm back to a computer!
Like I said in this comment, ROS is generally not mandatory. ROS is one platform among many, famous mostly due to Willow Garage giving away free robots at some point in time to whoever wrote the most ROS modules. That said, it's not the best platform possible, and is certainly nothing overly special. Particularly, the said contest ...
The official RaspberryPi operating system is a version of Debian, but there's also an ArchLinux version on their website.
Despite ROS's claim of being cross-platform, they only officially support Ubuntu at the moment. However, experimental installations have been made for the following OSes, according to ros.org:
OS X (Homebrew)
Very short answer: 2
Regarding whether reading from sensors all in one node or each separately, you should ask yourself this question:
Are the sensors meaningless without the other?
This question asks if the sensors are tightly coupled or not. For example, say you have a sensor that is sensitive to temperature (and you need to compensate for it). ...
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 as a project rather than as a file.
That's it, you've got your workspace integrated :)
Debugging built files (nodes which you run through rosrun) is easy, you just normally run them ...
The main difference is the isolated environment that you get with catkin build. This makes the whole build configuration much more compartmentalized and robust to changes in the configuration (add/remove package, modify a cmake variable etc.)
Apart from that you also get much better and easily-readable colored cmdline output which makes the whole experience ...
I think it is safe to say that ROS adds a lot of value to many robotics applications, but it definitely isn't appropriate for every robotics application
In fact, the ROS website has a series of pages that address that very point. These pages explain
the major broad advantages of using ROS,
the core components that go to make up ROS, and also
describe how ...
Robotics is hard enough as it is when all your dependencies are working. The last thing you need are additional problems coming from incompatible components or unsupported combinations.
I looked into this a little and here was my progression:
Raspberry Pi doesn't support Ubuntu because it's ARM CPU uses an older instruction set (ARM v6 I believe?) and the ...
Please see this bug ticket: https://code.ros.org/trac/ros/ticket/3691
I filed this bug report (with patch to fix) 13 months ago and am pretty disappointed in the ROS team that they have not put this in trunk.
I assume that you are looking for an IMU that provides you with an orientation estimation. The complete package is usually called an Attitude and Heading Reference System (AHRS). What really is the most defining criteria is your budget. Getting above 3 degrees/s should be within reach though.
We have been working with the XSens MTi and had good enough ...
I have used a VN-100 IMU to replace an old one (which could be quite inaccurate).
My experience with the VN-100 is quite good. It includes an internal Kalman filter to estimate pitch, roll and yaw (using magnetic sensors), and you can tune the gains on the Kalman filter yourself. How they should be tuned will depend on your application (eg. vibration, usual ...
Can you use a Roomba with ROS? Absolutely.
Can you use a Roomba with the existing turtlebot code? Most likely but it may depend on model of the Roomba since older models have a slightly different API. Of course even if there are API differences that haven't been accounted for it should not be too difficult to adjust the code to handle them.
You can follow the example code here and simply add a second subscription like so:
from std_msgs.msg import String
rospy.loginfo("Callback1 heard %s",data.data)
rospy.loginfo("Callback2 heard %s",data.data)
I implemented something like this in College:
Basically we just passed the vertices of the boustrophedon path as goals to move_base. Here's a video of a bag file being played back:
Here's the class paper we did for the planner:
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 like I should mention that most of the kinematics libraries out there are mostly targeted towards Linux. And as such, probably not too hard to compile from ...
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 setup.bash file.
Go to the src directory of your workspace.
Start CLion from the console from your src directory.
Close any open projects in CLion and select Import Project from ...
I have found the problem after some long search on the internet. The problem was that in Rviz, X-axis is defined as front of the robot and Y-axis is defined as the sideways. However, in my URDF I defined the robot in a way where Y-axis was its front and X-axis was its sideways. After fixing this, my robot moves normally in Rviz and Gazebo both.
Installing ROS is one thing, but the question you should really be asking is about maintaining ROS.
It's certainly possible to install ROS on any *nix system if you satisfy all the dependencies, but since those dependencies are constantly being updated to new versions the maintenance quickly becomes a nightmare. The OSX install tips on their wiki (...
This question was well-answered by ThomasH, but in addition I just want to suggest the possibility of wireless tethering the quadcopter to a laptop. That is, just write a nice-and-fast wireless (wifi?, bluetooth?) communication protocol for the quadcopter, then do the heavy CPU stuff on a laptop, while transmitting the instructions and sensor queries to the ...
Monte Carlo localization is just another name for a particle filter. Monte Carlo methods are a broader name for computational algorithms that rely on random sampling. A particle filter is a specific application of the general Monte Carlo method for localization, and so it is simply referred to sometimes as Monte Carlo localization.
If you ask Lord Google, ...
A kinect mounted on your robot is enough for mapping and localization. There are a few different packages that will work:
rgbdslam can create a 3d map using a kinect
You can use depthimage_to_laserscan to take in a depth image from the kinect and output a laser scan message which you can then use with gmapping for mapping, and the nav stack to navigate your ...
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 ...
The ROSBerryPi page is quite outdated, you actually can install prebuilt ROS Groovy binaries on Raspbian.
You will be better off installing prebuilt ROS binaries rather than building from source on your pi.
I don't have any experience with Ubuntu on the raspi but it's running great on my Odroid UX4 (similar single board computer) and ROS Jade runs just ...
Yes, it will work! The electrical interface is the same between the Create 2 and the 700 series Roomba; however, the position of the mini-DIN is changed. Instead of being to the right, under the top cover, the connector can be found under a rubber gasket under the handle. As long as any Create cable can physically fit in that location (and the one iRobot ...
I did a little step-by-step tutorial with images, but if my other answer regarding aligning frames didn't work well for you, or the definition of "Front Plane" or "Top Plane" is confusing in Solidworks (spoiler: it is), then consider making your own axes.
From the assembly tab, go to reference geometry -> axis, then select the assembly planes to make an ...
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 code will only involve a few trigonometric functions such as acos, asin, and atan2 (use atan2 instead of atan), and probably a couple of square and square root ...
I think you are getting confused between the basic ROS possibilities and some more advanced libraries which are integrated but do not need to be used by users without 'advanced' requirements. If you find it too difficult most likely those are functionalities which are not necessary for your project.
That being said, ROS is a middleware that makes the glue ...
In which order do you run your commands ?
rostopic list is used to list current topics registered with the rosmaster 'node', who is launched with the roscore commands
The publisher and subscriber topics are registered to the rosmaster with the python function rospy.Publisher('chatter', String, queue_size=10) for the publisher, and rospy.Subscriber("chatter"...
ROS Melodic supports 18.04, the current LTS-version of Ubuntu, so it's perfectly up to date.
ROS has a huge active community in Academia and(!) Industry (ROSIndustrial), many robotic companies use it in their products and ROS2 is currently under development.
A lot of ROS-packages have been written by people during their studies which have moved on later, ...