jdelacroix / simiam

A MATLAB-based educational bridge between theory and practice in robotics.
http://gritslab.gatech.edu/projects/robot-simulator
Other
104 stars 52 forks source link

info about the simiam #10

Open andre-rangel opened 10 years ago

andre-rangel commented 10 years ago

Hello there, I would like to more about the project and it's current status. Are there some plan to follow? Can we contribute? Why so many branches?

Thanks!

jdelacroix commented 10 years ago

Hello! You can read more about the project here: http://gritslab.gatech.edu/home/2013/10/sim-i-am. This mobile robot simulator is currently used for the programming assignments in the Coursera course, Control of Mobile Robots (https://www.coursera.org/course/conrob). Most of the branches are related to the course and the new robot, the QuickBot (http://o-botics.org/robots/quickbot/mooc/v1/). The course is ending soon, so I am preparing to merge the changes from the coursera-* branches into the master branch soon. Afterwards, I will think about what features to add to the simulator next (higher fidelity physics and an upgrade to 3D are probably on top of my list).

This project is most definitely open for you and anybody else to contribute! Thank you for your questions and interest in the project!

andre-rangel commented 10 years ago

Great! I found this repository because I did the course and specially liked the simulator. Please, don't forget to post the new plans for the software. Upgrade to 3d would be awsome, make a platform to draw different obstacles, a record button to save the run in video and show in the course or send to friends. Anyway, would be great! Count me in.

jdelacroix commented 10 years ago

Those are great ideas! I think it would be useful to have a level editor for adding robots and obstacles to the environment graphically (rather than through the XML). Also, sharing recordings would have been an amazing features to have during the course.

Thanks!

andre-rangel commented 10 years ago

To improve the software, we may integrate the different parts of the simiam instead of typing in the matlab prompt to call other interfaces, as the level editor. This is an idea. Maybe we can make a especial version of the application for the course, with a submit button. simiam_flowchart

jdelacroix commented 10 years ago

I agree that the simulator (application) should be launched with a single command, and all of its functionality can be accessed from the start (rather than relying on launch, submit, edit, or other scripts). What do you think about integrating the level editor and simulator, so that a user can edit the world dynamically even if the simulation is already running?

Another idea (if simulator and level editor are integrated): a user has a real robot and is using it to map the world. The sensor data is plotted in the simulator, and the user can then add a virtual version of the obstacle based on the sensor data.

andre-rangel commented 10 years ago

I like it! I think more iteraction should be attractive to people. The user will choose the environment or make a new one, add obstacles, mark the goal if necessary and add robots. A good customized environment for simulation. A lot of work to do!

andre-rangel commented 10 years ago

I made drawings with pencil with some suggestions for the main window of the simulator integrated with the level editor. simiamtela1bw

(1) menu : Open, new, close, save, choose, Robots, exit; Help: Manual, FQA; About: web Site, about this version. (2) Tabs . (3) tools. (4) hide tools. (5) squares. (6) circles. (7) triangles. (8) line. (9) curve. (10) change cursor (hand cursor<-> arrow cursor). (11) Robots. (12) play. (13) record. (14) time. (15) screen. (16) space for mensages.

andre-rangel commented 10 years ago

tabs can help to edit several levels with one open window.

jdelacroix commented 10 years ago

Nice design! I like that it is clean, and the toolbox/toolsidebar is a great idea, especially if it can be hidden away easily.

I had always envisioned the simulator UI to be a crossover between a maps and a music app. For example, https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/music/music-album-playback.png and https://wiki.gnome.org/Design/Apps/Maps?action=AttachFile&do=get&target=main-view.png.

The map interface is natural, because it is a robot driving through an environment (which like a map, has obstacles and spaces to drive), while the simulation controls are similar to music controls (stop, pause, record, rewind, forward, etc.) A combination of the two with the above toolbar would be fantastic, I think. (Perhaps, I'll sit down this week and make a mockup too!)

On a more technical note, the simulator is using this package for the UI: http://www.mathworks.com/matlabcentral/fileexchange/29472-gridlayout, which is a little inflexible and hasn't been update in a while. I'm considering this package instead: http://www.mathworks.com/matlabcentral/fileexchange/27758-gui-layout-toolbox, which should make it straightforward to implement your mockup, for example.

andre-rangel commented 10 years ago

Thanks, I still don't know how much one can modify matlab ui, because my background is c++/Qt framework which gives you free control over every part of the ui or even make new widgets for interfaces. This last package seems to be really what we are looking for regarding layouts.

I liked the examples that you showed me. Before everything, I think we need a complete historyboard for the new simulator and every feature to have that clear in mind.

We can modify the environment when the user clicks in the record button, showing how much time it is been recording, for example, and a different environment for play the recording. We may need more packages for these features too.

jdelacroix commented 10 years ago

That sounds like the most logical way forward. Re: UIs in MATLAB, they're not as feature rich and flexible as Qt, and often require poking at the Java objects underneath. For example, all images in the current UI are embedded via HTML in a MATLAB button. These buttons by default have borders, which you can only remove/turn off by accessing the internal Java object corresponding to that button.

Here's a list of widgets that are available: http://www.mathworks.com/help/matlab/component-selection.html

andre-rangel commented 10 years ago

simiamtela1 simiamtela2 simiamtela3 simiamtela4 simiamtela5 simiamtela6 simiamtela7 simiamtela8 simiamtela9 simiamtela10 simiamtela11 simiamtela12

Dadwi commented 8 years ago

Good morning , Is it now possible to add and to modify the environment architecture ? If yes how should I proceed .Furthermore can I add robots and change their behaviour .In which file should I do that ? Thank you