I am planning to do a project on Simultaneous Localization and Mapping(SLAM) using simulation since I am completely new to robotics I have no idea where to start and how to proceed.Please do help me to begin my work and I need some references for the tutorial.
I would suggest you to use Robot Operating System (ROS). It has good development tools and the algorithms for SLAM and planning already available. You can start with installing ROS followed by ROS tutorials.
Related
I am trying to get started developing unittests for my embedded system, actually its a firmware that was already developed a while ago, now we want to add CI to it and start this by writing unittests.
I read blogs like
https://dmitryfrank.com/articles/unit_testing_embedded_c_applications
or https://interrupt.memfault.com/blog/unit-testing-basics and they recommend to implement the unittests via a unittest framework as unity, cpputest and so on and so on. I tried to figure out how to make this run on my windows machine that I use at work but it seems tedious and prone to problems etc.
I also tried to start working with the microsoft vs unit testing framework but got discouraged after running into problems here, too. I think this can't be so hard, it shouldn't take so much effort to start writing the first littlest test...
Do you have experience with this and what would you recommend? Is it viable to do this on Windows? Should I push my boss to let me use a VM, WSL or a Machine that runs Ubuntu? In the end I would like to transfer the CI System to a lab pc (edit: this pc would then also be connected to the hardware, flash it, maybe run a debug build on it and compile some answers that it gets from the hardware... but now I want to talk about the unit test), so if I start developing on Ubuntu now, I will have to deal with this lateron, too...
Maybe a lot of thoughts but I feel a bit overwhelmed with the problem and don't know how to start.
Thanks for you replies, people!
Edit: The discussion I am looking for is not about whether unit testing for embedded systems is useful or the right approach (also interesting but I would like to seperate it) . It's about the question whether it can be fully developed under Windows or whether a Linux System is necessary to be efficient.
I want to learn about using TPM in embedded Linux on ARM for secureboot, TrustZone etc. But I'm currently lost finding a good starting point.
I used the search engines and read some stuff like "DEN0006D_Trusted_Board_Boot_Requirements" and "Infineon-ISPN-Use-Case-Secured-boot-for-ARM-processor-platforms-ABR-v01_00-EN". But nothing which really helped me gaining knowledge.
Either I used the wrong searching words or the information is mainly closed. The most stuff I found is about TPM and Windows...
Can someone recommend any webpage, book, video or something else to start?
Edit: Beside the things in the solution, I can recommend the free open book "A Practical Guide to TPM 2.0" https://link.springer.com/book/10.1007/978-1-4302-6584-9
I was using TPM lately on an embedded Linux and it's really a hard topic.
If you are talking about TPM itself, the first thing is which version you are using.
I am assuming that you are using TPM 2.0.
A good starting point for me was: tpm-js. You can use this tool
to learn a few things about TPM. You can browse sources of this project to
get a little deeper knowledge.
Then you can use Tpm2-tss library. Only a few months ago they
implemented the FAPI layer that simplifies the whole development.
And also there is a TPM 2.0 architecture doc that can help you a
lot, but I don't think it is a good starting point.
The last and very good source of information for me ware the people behind tpm2-tss library. Ask them on the tpm2-tss Git-Hub page.
I don't recommend you to use tpm2 tools. There ware a lot of changes lately and it will be really confusing for you in the beginning. First you need to learn the differences between hierarchies and the difference between primary key and it's child keys. A lot of these information you will find in tpm-js.
I'd like to develop a network based application for the Arduino platform. The examples shipped with a Wi-Fi Shield library are all multifile sketches with a network part implemented in C. I'd like to figure out how to implement the network portion in a way regular C/C++ development is conducted (with a decent IDE and step-by-step debugger).
I noticed WiShield is build on top of the uIP library ((an open source full TCP/IP stack implementation for resource-constrained embedded devices)) and greatly influenced by it. Smart folks implemented DHCP and zero configuration implementations on top of it. How do people execute projects of such complexity and what tools are being used?
Are you looking for some Arduino emulator? I think these two should get you started.
Emulino
Simavr
Use the simple programming software that can easily work with arduino chips but don't make your project in complex situation putting some complex programs.
I'd like to begin tinkering around with an RTS AI, but I'm having trouble finding a good environment to work with, ie a game that has been already created. I have looked at Spring RTS and Bos Wars, but they don't seem to be conducive to creating simple examples.
I am not totally opposed to writing my own game environment, it would just take a long time. Does anyone have a suggestion as to how I can get my feet wet without programming my own game?
There's actually a starcraft AI competition going on right now. The BWAPI ai api is very nice and should get you going very quickly. There are already many impressive entrants.
http://eis.ucsc.edu/StarCraftAICompetition
Edit :(, just realized how old this question is.
I can not say anything about the other projects, but i can speak for Spring RTS:
It supports a plugin system for AI Interfaces, and as of January 2011, comes with a Native (C/C++) and a JVM (Java, Groovy, JRuby, ...) AI Interface plugin. A Python plugin is quite mayor already, but not yet considered stable. There are lots of C++ AIs to be used as reference, while for Java, there is a small tutorial and a few AIs.
As the base of all the interfaces is the same (the engine), they are very similar in nature, so it is also possible to use C++ AIs as a reference when writing a Java AI and vice versa.
The AI development forum and the #ai channel on the lobby (also reachable through IRC) may be of use too.
The engine has already been used for at least 7 AIs developed during university thesis.
The engine its self is mostly written in C++, uses the CMake build system and compiles on Linux+GCC and Windows+MinGW (unofficially also on MSVC). You may want to follow the guide under Development - Compiling on the projects homepage, which explains how to compile the engine, and in turn also gets you the source code of the engine and a few AIs.
Check out ORTS, maintained by Michael Buro at the University of Alberta.
I haven't used it myself, but I've seen it in action since even before the first release in 2003, and it's definitely grown in leaps and bounds.
I'm pretty sure Strarcraft II will come with a very complete, programmable, editor (some people even transformed it into a FPS). It will be released on July the 2nd.
Supreme Commander is also moddable via Lua. There are several WWI - WWII strategy games also moddable via Lua.
On the Opensource front, glest and temulous have their source available; you might want to try modding them.
Finally, there's 0 A. D., which is also opensource, but on alpha.
My recommendation, however, is that you give a look at the Spring project.
If you have a few bucks, Garage Games has an RTS kit for its Torque game engine. http://www.garagegames.com/products/rts-genre-kit
This should allow you to begin writing some AI code immediately.
I'm working on a free software (bsd license) project with others. We're searching for a system that check out our source code (svn) and build it also as test it (unit tests with Check / other tools).
It should have a webbased interface and generate reports.
I hope we don't have to write such a system from null by ourselves...
You surely do not have to code this yourself - there are a lot of continuous integration systems which are able to check out source code from systems such as SVN and they are generally easy to extend with your own tasks, so running custom test scripts/programs should not be a problem.
While these CI systems are probably not written in C, this does not matter, since they just need to be able to access and compile your source code, for which they will use an external compiler anyways.
Just to list some of the well known CI tools:
CruiseControl
Hudson
TeamCity
You might also be interested in other questions on Stack Overflow tagged as continuous-integration. :)
I don't think that there's a buildsystem that is capable of doing all this tasks - but what about combining them?
SCons is a nice buildsystem that runs on every machine that has Python. It can even build directly from SVN. For automatic building you can try Buildbot.
Check out buildbot
My vote would be CruiseControl.NET, it has everything you are asking for. It is open source so the costs are low, and it has a very active user community on google groups to help you with your problems as you grow accustomed to it. Also, although .NET based, using MONO it is very nice on Linux and Mac build servers as well so you have everything covered.